[cfe-users] Clang compilation options to solve the comaptible issue?

Guofeng Zhang via cfe-users cfe-users at lists.llvm.org
Wed Nov 6 17:37:24 PST 2019


I just saw the mail today. It archived by gmail in the Sent folder.

Thanks for the helpful response.

On Mon, Nov 4, 2019 at 1:48 AM Richard Smith <richard at metafoo.co.uk> wrote:

> On Thu, 31 Oct 2019 at 01:45, Guofeng Zhang via cfe-users <
> cfe-users at lists.llvm.org> wrote:
>
>> Hi,
>>
>> I just stat using clang 8 not long ago. I  need to compile our old c++
>> source without changing it. It is compiled with Visual Studio before. Now I
>> want to migrate to clang as the compiler.
>>
>> The following code segement can be compiled by clang:
>>
>> 1)  for (int i = 0 ; i < 6 ; i++ ) {
>>         ....
>>      }
>>      int k = i ;  // compiler error
>>
>
> This code is relying on pre-standard C++ for loop scoping behavior (the
> code has been invalid for all 21 years of standard C++). Clang does not
> support this pre-standard behavior.
>
>
>> 2) unsigned short *s = ....
>>     wchar_t  *t = s ; // compiler error
>>
>> I tried -ffor-scope and -fshort-wchar, but does not solve the issues.
>>
>> are there clang compilation options to solve the issues?
>>
>
> For the latter, something like "-Dwchar_t=unsigned short" might mostly
> work. (It won't support things like "wchar_t x = wchar_t(123);" though --
> to support that you could put "typedef unsigned short my_wchar_t; #define
> wchar_t my_wchar_t" into a -include'd header.)
>
> Generally. if you have the combination of ancient pre-standard C++ code
> that is invalid under any ISO C++ standard, and a requirement that you do
> not modify the code, you're going to have problems. Sorry. That said, Clang
> itself is open-source and modifiable, and it should be straightforward to
> add support for the above two constructs to Clang and build your own
> compiler that could perhaps accept this code. I'm not sure we'd want to
> accept patches for those non-standard behaviors upstream, though.
>
> Thanks for your help very much,
>>
>> Guofeng
>> _______________________________________________
>> cfe-users mailing list
>> cfe-users at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20191107/fc736f99/attachment.html>


More information about the cfe-users mailing list