summaryrefslogtreecommitdiffstats
path: root/clang/test/Frontend/gnu-inline.c
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2017-04-26 23:44:33 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2017-04-26 23:44:33 +0000
commitb0fe70451e23a2b5ef19399d286c6a1cdaf5e686 (patch)
treef05534e837c1fad09fe652126e564b092add3fa6 /clang/test/Frontend/gnu-inline.c
parent092e32e540c6d024b8bdcf30e81a9177d4cb9e37 (diff)
downloadbcm5719-llvm-b0fe70451e23a2b5ef19399d286c6a1cdaf5e686.tar.gz
bcm5719-llvm-b0fe70451e23a2b5ef19399d286c6a1cdaf5e686.zip
Don't accept -std= values that would switch us to a different source language.
We already prohibited this in most cases (in r130710), but had some bugs in our enforcement of this rule. Specifically, this prevents the following combinations: * -x c -std=clN.M, which would previously effectively act as if -x cl were used, despite the input being a C source file. (-x cl -std=cNN continues to be disallowed.) * -x c++ -std=cuda, which would previously select C++98 + CUDA, despite that not being a C++ standard. (-x cuda -std=c++NN is still permitted, and selects CUDA with the given C++ standard as its base language. -x cuda -std=cuda is still supported with the meaning of CUDA + C++98.) * -x renderscript -std=c++NN, which would previously form a hybrid "C++ with RenderScript extensions" language. We could support such a thing, but shouldn't do so by accident. llvm-svn: 301497
Diffstat (limited to 'clang/test/Frontend/gnu-inline.c')
-rw-r--r--clang/test/Frontend/gnu-inline.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/test/Frontend/gnu-inline.c b/clang/test/Frontend/gnu-inline.c
index 0272df7e71e..75d4fe6516f 100644
--- a/clang/test/Frontend/gnu-inline.c
+++ b/clang/test/Frontend/gnu-inline.c
@@ -3,8 +3,10 @@
// RUN: %clang_cc1 -std=c99 -fgnu89-inline -fsyntax-only -x c -E -dM %s | FileCheck --check-prefix=GNU-INLINE %s
// RUN: %clang_cc1 -fsyntax-only -x c++ -E -dM %s | FileCheck --check-prefix=GNU-INLINE %s
// RUN: not %clang_cc1 -fgnu89-inline -fsyntax-only -x c++ %s 2>&1 | FileCheck --check-prefix=CXX %s
+// RUN: not %clang_cc1 -fgnu89-inline -fsyntax-only -x objective-c++ %s 2>&1 | FileCheck --check-prefix=OBJCXX %s
-// CXX: '-fgnu89-inline' not allowed with 'C++/ObjC++'
+// CXX: '-fgnu89-inline' not allowed with 'C++'
+// OBJCXX: '-fgnu89-inline' not allowed with 'Objective-C++'
// STDC-INLINE-NOT: __GNUC_GNU_INLINE__
// STDC-INLINE: #define __GNUC_STDC_INLINE__ 1
OpenPOWER on IntegriCloud