Author: arphaman Date: Thu Feb 8 13:20:43 2018 New Revision: 324651 URL: http://llvm.org/viewvc/llvm-project?rev=324651&view=rev Log: PR36307: Consume the #pragma options align annotation token after semantic analysis to prevent incorrect -Wpragma-pack warning for an included file
rdar://37354951 Added: cfe/trunk/test/Sema/Inputs/pragma-align-no-header-change-warning.h cfe/trunk/test/Sema/pragma-align-no-header-change-warning.c Modified: cfe/trunk/lib/Parse/ParsePragma.cpp Modified: cfe/trunk/lib/Parse/ParsePragma.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParsePragma.cpp?rev=324651&r1=324650&r2=324651&view=diff ============================================================================== --- cfe/trunk/lib/Parse/ParsePragma.cpp (original) +++ cfe/trunk/lib/Parse/ParsePragma.cpp Thu Feb 8 13:20:43 2018 @@ -509,8 +509,10 @@ void Parser::HandlePragmaAlign() { Sema::PragmaOptionsAlignKind Kind = static_cast<Sema::PragmaOptionsAlignKind>( reinterpret_cast<uintptr_t>(Tok.getAnnotationValue())); - SourceLocation PragmaLoc = ConsumeAnnotationToken(); - Actions.ActOnPragmaOptionsAlign(Kind, PragmaLoc); + Actions.ActOnPragmaOptionsAlign(Kind, Tok.getLocation()); + // Consume the token after processing the pragma to enable pragma-specific + // #include warnings. + ConsumeAnnotationToken(); } void Parser::HandlePragmaDump() { Added: cfe/trunk/test/Sema/Inputs/pragma-align-no-header-change-warning.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/Inputs/pragma-align-no-header-change-warning.h?rev=324651&view=auto ============================================================================== --- cfe/trunk/test/Sema/Inputs/pragma-align-no-header-change-warning.h (added) +++ cfe/trunk/test/Sema/Inputs/pragma-align-no-header-change-warning.h Thu Feb 8 13:20:43 2018 @@ -0,0 +1,5 @@ +#pragma options align=mac68k + +struct S { int x; }; + +#pragma options align=reset Added: cfe/trunk/test/Sema/pragma-align-no-header-change-warning.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/pragma-align-no-header-change-warning.c?rev=324651&view=auto ============================================================================== --- cfe/trunk/test/Sema/pragma-align-no-header-change-warning.c (added) +++ cfe/trunk/test/Sema/pragma-align-no-header-change-warning.c Thu Feb 8 13:20:43 2018 @@ -0,0 +1,5 @@ +// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -Wpragma-pack -I %S/Inputs -verify %s +// expected-no-diagnostics + +#include "pragma-align-no-header-change-warning.h" + _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits