summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/enable_if-ext.c
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2016-02-18 06:49:31 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2016-02-18 06:49:31 +0000
commit046ba5b66faea26fb0ef36b48a07e9c0fc08970c (patch)
tree93a6614926f09537909be0510ec276ff5c75dab5 /clang/test/Sema/enable_if-ext.c
parentbc24cb5fb53753fcf643a33885ba04b3c6f32041 (diff)
downloadbcm5719-llvm-046ba5b66faea26fb0ef36b48a07e9c0fc08970c.tar.gz
bcm5719-llvm-046ba5b66faea26fb0ef36b48a07e9c0fc08970c.zip
Sema: provide an extension warning for enable_if
Clang implements an enable_if attribute as an extension. Hook up `-Wpedantic` to issue an extension usage warning when __enable_if__ is used. llvm-svn: 261192
Diffstat (limited to 'clang/test/Sema/enable_if-ext.c')
-rw-r--r--clang/test/Sema/enable_if-ext.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/clang/test/Sema/enable_if-ext.c b/clang/test/Sema/enable_if-ext.c
new file mode 100644
index 00000000000..1e605d49b60
--- /dev/null
+++ b/clang/test/Sema/enable_if-ext.c
@@ -0,0 +1,50 @@
+// RUN: %clang_cc1 -fsyntax-only %s -include %s -verify
+// RUN: %clang_cc1 -Wpedantic -fsyntax-only %s -include %s -verify -DWARN_PEDANTIC
+
+#ifndef enable_if_ext_included
+#define enable_if_ext_included
+
+#if !defined(WARN_PEDANTIC)
+// expected-no-diagnostics
+#endif
+
+__attribute__ (( enable_if(1, "") ))
+#if defined(WARN_PEDANTIC)
+// expected-warning@-2 {{'enable_if' is a clang extension}}
+#endif
+void f() { }
+
+__attribute__ (( __enable_if__(1, "") ))
+#if defined(WARN_PEDANTIC)
+// expected-warning@-2 {{'enable_if' is a clang extension}}
+#endif
+void g() { }
+
+__attribute__ (( enable_if(0, "") ))
+#if defined(WARN_PEDANTIC)
+// expected-warning@-2 {{'enable_if' is a clang extension}}
+#endif
+void h() { }
+
+__attribute__ (( __enable_if__(0, "") ))
+#if defined(WARN_PEDANTIC)
+// expected-warning@-2 {{'enable_if' is a clang extension}}
+#endif
+void i() { }
+
+#pragma clang system_header
+
+__attribute__ (( enable_if(1, "") ))
+void j() { }
+
+__attribute__ (( __enable_if__(1, "") ))
+void k() { }
+
+__attribute__ (( enable_if(0, "") ))
+void l() { }
+
+__attribute__ (( __enable_if__(0, "") ))
+void m() { }
+
+#endif
+
OpenPOWER on IntegriCloud