summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/Basic/Features.def1
-rw-r--r--clang/test/Parser/asm.c4
-rw-r--r--clang/test/Parser/no-gnu-inline-asm.c4
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
OpenPOWER on IntegriCloud