summaryrefslogtreecommitdiffstats
path: root/clang/test/Sema/block-printf-attribute-1.c
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-05-19 17:08:59 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-05-19 17:08:59 +0000
commit960910a159f79ce3b42c9bb3998849694251a979 (patch)
tree65cdadfaa2c8dc7228c2165ec48e6e141da83ea1 /clang/test/Sema/block-printf-attribute-1.c
parent018958d94df01cfe29ab6fec49e64cf5af73679e (diff)
downloadbcm5719-llvm-960910a159f79ce3b42c9bb3998849694251a979.tar.gz
bcm5719-llvm-960910a159f79ce3b42c9bb3998849694251a979.zip
Patch finishes off application of printf attribute on blocks.
llvm-svn: 72111
Diffstat (limited to 'clang/test/Sema/block-printf-attribute-1.c')
-rw-r--r--clang/test/Sema/block-printf-attribute-1.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/Sema/block-printf-attribute-1.c b/clang/test/Sema/block-printf-attribute-1.c
new file mode 100644
index 00000000000..ce30b8e855b
--- /dev/null
+++ b/clang/test/Sema/block-printf-attribute-1.c
@@ -0,0 +1,15 @@
+// RUN: clang-cc %s -fsyntax-only -verify -fblocks
+
+int main()
+{
+ void (^b) (int arg, const char * format, ...) __attribute__ ((__format__ (__printf__, 1, 3))) = // expected-error {{format argument not a string type}}
+ ^ __attribute__ ((__format__ (__printf__, 1, 3))) (int arg, const char * format, ...) {}; // expected-error {{format argument not a string type}}
+
+ void (^z) (int arg, const char * format, ...) __attribute__ ((__format__ (__printf__, 2, 3))) = ^ __attribute__ ((__format__ (__printf__, 2, 3))) (int arg, const char * format, ...) {};
+
+ // FIXME: argument type poking not yet supportted.
+ z(1, "%s", 1); /* { dg-warning "format \\'\%s\\' expects type \\'char \\*\\'\, but argument 3 has type \\'int\\'" } */
+ z(1, "%s", "HELLO"); // OK
+
+}
+
OpenPOWER on IntegriCloud