summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-10-09 22:46:54 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-10-09 22:46:54 +0000
commitbbbbac6012880620c1b8689c6fd4b2c649e49d8c (patch)
treef17a2278dc6bd97cdd139d30ec1044ac0fbb9bb7 /clang/lib
parenta5d3ba008b14509aa9c95911de3b5e26a7976b5d (diff)
downloadbcm5719-llvm-bbbbac6012880620c1b8689c6fd4b2c649e49d8c.tar.gz
bcm5719-llvm-bbbbac6012880620c1b8689c6fd4b2c649e49d8c.zip
People put pragmas in crazy places; add more handling. PR14046.
I think our general framework for parser pragmas needs a bit more work, but I'm not planning on working on it at the moment. llvm-svn: 165558
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Parse/ParseStmt.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp
index 635f61b8213..d008b037b0e 100644
--- a/clang/lib/Parse/ParseStmt.cpp
+++ b/clang/lib/Parse/ParseStmt.cpp
@@ -254,11 +254,31 @@ Retry:
HandlePragmaPack();
return StmtEmpty();
+ case tok::annot_pragma_msstruct:
+ ProhibitAttributes(Attrs);
+ HandlePragmaMSStruct();
+ return StmtEmpty();
+
case tok::annot_pragma_align:
ProhibitAttributes(Attrs);
HandlePragmaAlign();
return StmtEmpty();
+ case tok::annot_pragma_weak:
+ ProhibitAttributes(Attrs);
+ HandlePragmaWeak();
+ return StmtEmpty();
+
+ case tok::annot_pragma_weakalias:
+ ProhibitAttributes(Attrs);
+ HandlePragmaWeakAlias();
+ return StmtEmpty();
+
+ case tok::annot_pragma_redefine_extname:
+ ProhibitAttributes(Attrs);
+ HandlePragmaRedefineExtname();
+ return StmtEmpty();
+
case tok::annot_pragma_fp_contract:
ProhibitAttributes(Attrs);
HandlePragmaFPContract();
OpenPOWER on IntegriCloud