diff options
| author | Volodymyr Sapsai <vsapsai@apple.com> | 2019-05-13 22:11:10 +0000 |
|---|---|---|
| committer | Volodymyr Sapsai <vsapsai@apple.com> | 2019-05-13 22:11:10 +0000 |
| commit | 44a7abe584103da1c261fa706dc08f7f4c0dda52 (patch) | |
| tree | 0439abdb43fb1da4521cd4ed9c49074d64438f6b | |
| parent | b40284dfb0930ebb48d6bf2dc11d1dc49ab1c162 (diff) | |
| download | bcm5719-llvm-44a7abe584103da1c261fa706dc08f7f4c0dda52.tar.gz bcm5719-llvm-44a7abe584103da1c261fa706dc08f7f4c0dda52.zip | |
Make language option `GNUAsm` discoverable with `__has_extension` macro.
This can be used for better support of `-fno-gnu-inline-asm` builds.
rdar://problem/49540880
Reviewers: aaron.ballman, rsmith
Reviewed By: aaron.ballman
Subscribers: eraman, jkorous, dexonsmith, craig.topper, cfe-commits
Differential Revision: https://reviews.llvm.org/D61619
llvm-svn: 360625
| -rw-r--r-- | clang/include/clang/Basic/Features.def | 1 | ||||
| -rw-r--r-- | clang/test/Parser/asm.c | 4 | ||||
| -rw-r--r-- | clang/test/Parser/no-gnu-inline-asm.c | 4 |
3 files changed, 9 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/Features.def b/clang/include/clang/Basic/Features.def index c97cbc59bc6..7ab7c4d1700 100644 --- a/clang/include/clang/Basic/Features.def +++ b/clang/include/clang/Basic/Features.def @@ -248,6 +248,7 @@ EXTENSION(cxx_variable_templates, LangOpts.CPlusPlus) EXTENSION(overloadable_unmarked, true) EXTENSION(pragma_clang_attribute_namespaces, true) EXTENSION(pragma_clang_attribute_external_declaration, true) +EXTENSION(gnu_asm, LangOpts.GNUAsm) #undef EXTENSION #undef FEATURE diff --git a/clang/test/Parser/asm.c b/clang/test/Parser/asm.c index dabb010529a..637f9d7ed42 100644 --- a/clang/test/Parser/asm.c +++ b/clang/test/Parser/asm.c @@ -1,5 +1,9 @@ // RUN: %clang_cc1 -fsyntax-only -verify %s +#if !__has_extension(gnu_asm) +#error Extension 'gnu_asm' should be available by default +#endif + void f1() { // PR7673: Some versions of GCC support an empty clobbers section. asm ("ret" : : :); diff --git a/clang/test/Parser/no-gnu-inline-asm.c b/clang/test/Parser/no-gnu-inline-asm.c index 03c2ede9488..eda9e0fed6a 100644 --- a/clang/test/Parser/no-gnu-inline-asm.c +++ b/clang/test/Parser/no-gnu-inline-asm.c @@ -1,5 +1,9 @@ // RUN: %clang_cc1 %s -triple i686-apple-darwin -verify -fsyntax-only -fno-gnu-inline-asm +#if __has_extension(gnu_asm) +#error Expected extension 'gnu_asm' to be disabled +#endif + asm ("INST r1, 0"); // expected-error {{GNU-style inline assembly is disabled}} void foo() __asm("__foo_func"); // AsmLabel is OK |

