diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Parse/ParsePragma.cpp | 2 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaAttr.cpp | 7 | 
2 files changed, 9 insertions, 0 deletions
| diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp index 397d816c76e..b27e655ff42 100644 --- a/clang/lib/Parse/ParsePragma.cpp +++ b/clang/lib/Parse/ParsePragma.cpp @@ -140,6 +140,8 @@ void PragmaOptionsHandler::HandlePragma(Preprocessor &PP, Token &OptionsTok) {      Kind = Action::POAK_Native;    else if (II->isStr("natural"))      Kind = Action::POAK_Natural; +  else if (II->isStr("packed")) +    Kind = Action::POAK_Packed;    else if (II->isStr("power"))      Kind = Action::POAK_Power;    else if (II->isStr("mac68k")) diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp index c540af2498d..fcf5bfd6693 100644 --- a/clang/lib/Sema/SemaAttr.cpp +++ b/clang/lib/Sema/SemaAttr.cpp @@ -146,6 +146,13 @@ void Sema::ActOnPragmaOptionsAlign(PragmaOptionsAlignKind Kind,      Context->setAlignment(0);      break; +    // Note that '#pragma options align=packed' is not equivalent to attribute +    // packed, it has a different precedence relative to attribute aligned. +  case POAK_Packed: +    Context->push(0); +    Context->setAlignment(1); +    break; +    case POAK_Mac68k:      // Check if the target supports this.      if (!PP.getTargetInfo().hasAlignMac68kSupport()) { | 

