mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-23 21:45:46 -04:00

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
18 lines
980 B
C
18 lines
980 B
C
// RUN: %clang_cc1 -std=c89 -fsyntax-only -x c -E -dM %s | FileCheck --check-prefix=GNU-INLINE %s
|
|
// RUN: %clang_cc1 -std=c99 -fsyntax-only -x c -E -dM %s | FileCheck --check-prefix=STDC-INLINE %s
|
|
// 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++'
|
|
// OBJCXX: '-fgnu89-inline' not allowed with 'Objective-C++'
|
|
|
|
// STDC-INLINE-NOT: __GNUC_GNU_INLINE__
|
|
// STDC-INLINE: #define __GNUC_STDC_INLINE__ 1
|
|
// STDC-INLINE-NOT: __GNUC_GNU_INLINE__
|
|
|
|
// GNU-INLINE-NOT: __GNUC_STDC_INLINE__
|
|
// GNU-INLINE: #define __GNUC_GNU_INLINE__ 1
|
|
// GNU-INLINE-NOT: __GNUC_STDC_INLINE__
|