hans added a comment.

In D112081#3073067 <https://reviews.llvm.org/D112081#3073067>, @aaron.ballman 
wrote:

> Thanks for this! Should we similarly handle `__STDC_NO_ATOMICS__`, 
> `__STDC_NO_COMPLEX__`, et al at the same time?

I'll look into those, thanks.

> Also, how should we handle `__STDC_VERSION__`? We set that in all C modes, 
> but MSVC only sets it when passed /std:c11, etc explicitly.

In any case we should probably do it separately. I don't really like MSVC's 
model where it's in a "traditional C with extensions" mode by default, but I 
clang-cl already also kind of does that because we don't define __STDC__ when 
targeting Windows. But it looks like unlike MSVC we also don't define it when 
passing /Za. And, I wonder how /Za and /std: are supposed to interact.

In D112081#3073075 <https://reviews.llvm.org/D112081#3073075>, @aaron.ballman 
wrote:

> Also, one concern I have for this is what to do if/when the Microsoft CRT 
> gets any of these features. Clang will be unconditionally setting 
> `__STDC_NO_WHATEVER__`, which we can correct for newer versions of Clang, but 
> still means older versions of Clang on those updated systems then report 
> something nonsensical.
>
> It'd be nice if Microsoft had a solution similar to stdc-predef.h used by 
> glibc, so the CRT could define information that we could use to determine 
> what macros to predefine rather than having to guess.

I think the best we can do is make updates in future versions of Clang.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112081/new/

https://reviews.llvm.org/D112081

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to