diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-10-09 22:46:54 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-10-09 22:46:54 +0000 |
commit | bbbbac6012880620c1b8689c6fd4b2c649e49d8c (patch) | |
tree | f17a2278dc6bd97cdd139d30ec1044ac0fbb9bb7 /clang/lib | |
parent | a5d3ba008b14509aa9c95911de3b5e26a7976b5d (diff) | |
download | bcm5719-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.cpp | 20 |
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(); |