]> granicus.if.org Git - clang/commitdiff
Make language option `GNUAsm` discoverable with `__has_extension` macro.
authorVolodymyr Sapsai <vsapsai@apple.com>
Mon, 13 May 2019 22:11:10 +0000 (22:11 +0000)
committerVolodymyr Sapsai <vsapsai@apple.com>
Mon, 13 May 2019 22:11:10 +0000 (22:11 +0000)
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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@360625 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/Features.def
test/Parser/asm.c
test/Parser/no-gnu-inline-asm.c

index c97cbc59bc6a2b87886433a34bea2a68b3940a48..7ab7c4d17005b669506050921fa88f5d9f29695b 100644 (file)
@@ -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
index dabb010529a914fa4200a3d2f93fd0aa60343726..637f9d7ed42f83c8cda6b084a611deddf0fbf69d 100644 (file)
@@ -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" : : :);
index 03c2ede9488900334501e791bc9ef2c2c9fcd5b5..eda9e0fed6aa9837dde207fd71ae0aa16efe36de 100644 (file)
@@ -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