[PATCH] D17330: PR26648: "inline" shouldn't be recognized as a C keyword in MSVC 2013 compatibility mode
David Majnemer via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 17 09:06:30 PST 2016
majnemer added a comment.
In http://reviews.llvm.org/D17330#354755, @andreybokhanko wrote:
> In http://reviews.llvm.org/D17330#354730, @majnemer wrote:
>
> > Why not just stick clang in C90 mode when targeting C if the -fms-compatibility-version is 18?
> >
> > We have similar code for the C++ mode in https://github.com/llvm-mirror/clang/blob/master/lib/Driver/Tools.cpp#l5069
>
>
> David, thanks for looking into this!
>
> MSVC18 doesn't support a set C standard; it adds some things from C99 as well. For example, it supports _Bool. So, I tried not to throw away baby along with bathwater and cause too much disruption.
>
> OK -- will implement a driver fix that sets C90 for MSVC18 tomorrow and will update the patch.
>
> Andrey
_Bool is fine, our C90 support is a superset of C90: it includes things which a conforming implementation is permitted to provide.
However, the following test case is problematic:
void f() {
for (int x = 0; x < 10; ++x) {}
for (int x = 0; x < 10; ++x) {}
}
This is supported by MSVC 2013 but would be (correctly) rejected by a compiler in C90 mode...
I have a feeling that sticking us in C90 mode would break code...
http://reviews.llvm.org/D17330
More information about the cfe-commits
mailing list