[llvm-branch-commits] [cfe-branch] r308457 - Merging r308455:
Hans Wennborg via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Jul 19 06:02:52 PDT 2017
Author: hans
Date: Wed Jul 19 06:02:51 2017
New Revision: 308457
URL: http://llvm.org/viewvc/llvm-project?rev=308457&view=rev
Log:
Merging r308455:
------------------------------------------------------------------------
r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines
Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"
This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
it's fixed, especially since this landed just before the 5.0 branch.
> This commit adds a new -Wpragma-pack warning. It warns in the following cases:
>
> - When a translation unit is missing terminating #pragma pack (pop) directives.
> - When entering an included file if the current alignment value as determined
> by '#pragma pack' directives is different from the default alignment value.
> - When leaving an included file that changed the state of the current alignment
> value.
>
> rdar://10184173
>
> Differential Revision: https://reviews.llvm.org/D35484
------------------------------------------------------------------------
Removed:
cfe/branches/release_50/test/PCH/suspicious-pragma-pack.c
cfe/branches/release_50/test/Sema/Inputs/pragma-pack1.h
cfe/branches/release_50/test/Sema/Inputs/pragma-pack2.h
cfe/branches/release_50/test/Sema/suspicious-pragma-pack.c
cfe/branches/release_50/test/SemaObjC/Inputs/empty.h
cfe/branches/release_50/test/SemaObjC/suspicious-pragma-pack.m
Modified:
cfe/branches/release_50/ (props changed)
cfe/branches/release_50/include/clang/Basic/DiagnosticGroups.td
cfe/branches/release_50/include/clang/Basic/DiagnosticSemaKinds.td
cfe/branches/release_50/include/clang/Lex/PPCallbacks.h
cfe/branches/release_50/include/clang/Sema/Sema.h
cfe/branches/release_50/include/clang/Serialization/ASTReader.h
cfe/branches/release_50/lib/Parse/ParsePragma.cpp
cfe/branches/release_50/lib/Sema/Sema.cpp
cfe/branches/release_50/lib/Sema/SemaAttr.cpp
cfe/branches/release_50/lib/Serialization/ASTReader.cpp
cfe/branches/release_50/lib/Serialization/ASTWriter.cpp
cfe/branches/release_50/test/OpenMP/declare_simd_messages.cpp
cfe/branches/release_50/test/PCH/pragma-pack.c
cfe/branches/release_50/test/Parser/pragma-options.c
cfe/branches/release_50/test/Parser/pragma-options.cpp
cfe/branches/release_50/test/Parser/pragma-pack.c
cfe/branches/release_50/test/Sema/pragma-pack.c
Propchange: cfe/branches/release_50/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jul 19 06:02:51 2017
@@ -1,3 +1,4 @@
/cfe/branches/type-system-rewrite:134693-134817
+/cfe/trunk:308455
/cfe/trunk/test:170344
/cfe/trunk/test/SemaTemplate:126920
Modified: cfe/branches/release_50/include/clang/Basic/DiagnosticGroups.td
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/include/clang/Basic/DiagnosticGroups.td?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/include/clang/Basic/DiagnosticGroups.td (original)
+++ cfe/branches/release_50/include/clang/Basic/DiagnosticGroups.td Wed Jul 19 06:02:51 2017
@@ -469,9 +469,8 @@ def IgnoredPragmaIntrinsic : DiagGroup<"
def UnknownPragmas : DiagGroup<"unknown-pragmas">;
def IgnoredPragmas : DiagGroup<"ignored-pragmas", [IgnoredPragmaIntrinsic]>;
def PragmaClangAttribute : DiagGroup<"pragma-clang-attribute">;
-def PragmaPack : DiagGroup<"pragma-pack">;
def Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas,
- PragmaClangAttribute, PragmaPack]>;
+ PragmaClangAttribute]>;
def UnknownWarningOption : DiagGroup<"unknown-warning-option">;
def NSobjectAttribute : DiagGroup<"NSObject-attribute">;
def IndependentClassAttribute : DiagGroup<"IndependentClass-attribute">;
Modified: cfe/branches/release_50/include/clang/Basic/DiagnosticSemaKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/include/clang/Basic/DiagnosticSemaKinds.td?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/include/clang/Basic/DiagnosticSemaKinds.td (original)
+++ cfe/branches/release_50/include/clang/Basic/DiagnosticSemaKinds.td Wed Jul 19 06:02:51 2017
@@ -712,16 +712,6 @@ def err_pragma_options_align_mac68k_targ
def warn_pragma_pack_invalid_alignment : Warning<
"expected #pragma pack parameter to be '1', '2', '4', '8', or '16'">,
InGroup<IgnoredPragmas>;
-def warn_pragma_pack_non_default_at_include : Warning<
- "non-default #pragma pack value might change the alignment of struct or "
- "union members in the included file">, InGroup<PragmaPack>;
-def warn_pragma_pack_modified_after_include : Warning<
- "the current #pragma pack aligment value is modified in the included "
- "file">, InGroup<PragmaPack>;
-def warn_pragma_pack_no_pop_eof : Warning<"unterminated "
- "'#pragma pack (push, ...)' at end of file">, InGroup<PragmaPack>;
-def note_pragma_pack_here : Note<
- "previous '#pragma pack' directive that modifies alignment is here">;
// Follow the Microsoft implementation.
def warn_pragma_pack_show : Warning<"value of #pragma pack(show) == %0">;
def warn_pragma_pack_pop_identifer_and_alignment : Warning<
Modified: cfe/branches/release_50/include/clang/Lex/PPCallbacks.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/include/clang/Lex/PPCallbacks.h?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/include/clang/Lex/PPCallbacks.h (original)
+++ cfe/branches/release_50/include/clang/Lex/PPCallbacks.h Wed Jul 19 06:02:51 2017
@@ -381,12 +381,6 @@ public:
Second->Ident(Loc, str);
}
- void PragmaDirective(SourceLocation Loc,
- PragmaIntroducerKind Introducer) override {
- First->PragmaDirective(Loc, Introducer);
- Second->PragmaDirective(Loc, Introducer);
- }
-
void PragmaComment(SourceLocation Loc, const IdentifierInfo *Kind,
StringRef Str) override {
First->PragmaComment(Loc, Kind, Str);
Modified: cfe/branches/release_50/include/clang/Sema/Sema.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/include/clang/Sema/Sema.h?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/include/clang/Sema/Sema.h (original)
+++ cfe/branches/release_50/include/clang/Sema/Sema.h Wed Jul 19 06:02:51 2017
@@ -208,7 +208,6 @@ namespace sema {
class FunctionScopeInfo;
class LambdaScopeInfo;
class PossiblyUnreachableDiag;
- class SemaPPCallbacks;
class TemplateDeductionInfo;
}
@@ -382,12 +381,11 @@ public:
llvm::StringRef StackSlotLabel;
ValueType Value;
SourceLocation PragmaLocation;
- SourceLocation PragmaPushLocation;
- Slot(llvm::StringRef StackSlotLabel, ValueType Value,
- SourceLocation PragmaLocation, SourceLocation PragmaPushLocation)
- : StackSlotLabel(StackSlotLabel), Value(Value),
- PragmaLocation(PragmaLocation),
- PragmaPushLocation(PragmaPushLocation) {}
+ Slot(llvm::StringRef StackSlotLabel,
+ ValueType Value,
+ SourceLocation PragmaLocation)
+ : StackSlotLabel(StackSlotLabel), Value(Value),
+ PragmaLocation(PragmaLocation) {}
};
void Act(SourceLocation PragmaLocation,
PragmaMsStackAction Action,
@@ -418,8 +416,6 @@ public:
explicit PragmaStack(const ValueType &Default)
: DefaultValue(Default), CurrentValue(Default) {}
- bool hasValue() const { return CurrentValue != DefaultValue; }
-
SmallVector<Slot, 2> Stack;
ValueType DefaultValue; // Value used for PSK_Reset action.
ValueType CurrentValue;
@@ -441,8 +437,6 @@ public:
// Sentinel to represent when the stack is set to mac68k alignment.
static const unsigned kMac68kAlignmentSentinel = ~0U;
PragmaStack<unsigned> PackStack;
- // The current #pragma pack values and locations at each #include.
- SmallVector<std::pair<unsigned, SourceLocation>, 8> PackIncludeStack;
// Segment #pragmas.
PragmaStack<StringLiteral *> DataSegStack;
PragmaStack<StringLiteral *> BSSSegStack;
@@ -8188,15 +8182,6 @@ public:
void ActOnPragmaPack(SourceLocation PragmaLoc, PragmaMsStackAction Action,
StringRef SlotLabel, Expr *Alignment);
- enum class PragmaPackDiagnoseKind {
- NonDefaultStateAtInclude,
- ChangedStateAtExit
- };
-
- void DiagnoseNonDefaultPragmaPack(PragmaPackDiagnoseKind Kind,
- SourceLocation IncludeLoc);
- void DiagnoseUnterminatedPragmaPack();
-
/// ActOnPragmaMSStruct - Called on well formed \#pragma ms_struct [on|off].
void ActOnPragmaMSStruct(PragmaMSStructKind Kind);
@@ -10398,12 +10383,6 @@ private:
IdentifierInfo *Ident_NSError = nullptr;
- /// \brief The handler for the FileChanged preprocessor events.
- ///
- /// Used for diagnostics that implement custom semantic analysis for #include
- /// directives, like -Wpragma-pack.
- sema::SemaPPCallbacks *SemaPPCallbackHandler;
-
protected:
friend class Parser;
friend class InitializationSequence;
Modified: cfe/branches/release_50/include/clang/Serialization/ASTReader.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/include/clang/Serialization/ASTReader.h?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/include/clang/Serialization/ASTReader.h (original)
+++ cfe/branches/release_50/include/clang/Serialization/ASTReader.h Wed Jul 19 06:02:51 2017
@@ -825,7 +825,6 @@ private:
struct PragmaPackStackEntry {
unsigned Value;
SourceLocation Location;
- SourceLocation PushLocation;
StringRef SlotLabel;
};
llvm::SmallVector<PragmaPackStackEntry, 2> PragmaPackStack;
Modified: cfe/branches/release_50/lib/Parse/ParsePragma.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/lib/Parse/ParsePragma.cpp?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/lib/Parse/ParsePragma.cpp (original)
+++ cfe/branches/release_50/lib/Parse/ParsePragma.cpp Wed Jul 19 06:02:51 2017
@@ -422,20 +422,15 @@ void Parser::HandlePragmaPack() {
assert(Tok.is(tok::annot_pragma_pack));
PragmaPackInfo *Info =
static_cast<PragmaPackInfo *>(Tok.getAnnotationValue());
- SourceLocation PragmaLoc = Tok.getLocation();
+ SourceLocation PragmaLoc = ConsumeAnnotationToken();
ExprResult Alignment;
if (Info->Alignment.is(tok::numeric_constant)) {
Alignment = Actions.ActOnNumericConstant(Info->Alignment);
- if (Alignment.isInvalid()) {
- ConsumeAnnotationToken();
+ if (Alignment.isInvalid())
return;
- }
}
Actions.ActOnPragmaPack(PragmaLoc, Info->Action, Info->SlotLabel,
Alignment.get());
- // Consume the token after processing the pragma to enable pragma-specific
- // #include warnings.
- ConsumeAnnotationToken();
}
void Parser::HandlePragmaMSStruct() {
Modified: cfe/branches/release_50/lib/Sema/Sema.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/lib/Sema/Sema.cpp?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/lib/Sema/Sema.cpp (original)
+++ cfe/branches/release_50/lib/Sema/Sema.cpp Wed Jul 19 06:02:51 2017
@@ -70,49 +70,6 @@ void Sema::ActOnTranslationUnitScope(Sco
PushDeclContext(S, Context.getTranslationUnitDecl());
}
-namespace clang {
-namespace sema {
-
-class SemaPPCallbacks : public PPCallbacks {
- Sema *S = nullptr;
- llvm::SmallVector<SourceLocation, 8> IncludeStack;
-
-public:
- void set(Sema &S) { this->S = &S; }
-
- void reset() { S = nullptr; }
-
- virtual void FileChanged(SourceLocation Loc, FileChangeReason Reason,
- SrcMgr::CharacteristicKind FileType,
- FileID PrevFID) override {
- if (!S)
- return;
- switch (Reason) {
- case EnterFile: {
- SourceManager &SM = S->getSourceManager();
- SourceLocation IncludeLoc = SM.getIncludeLoc(SM.getFileID(Loc));
- if (IncludeLoc.isValid()) {
- IncludeStack.push_back(IncludeLoc);
- S->DiagnoseNonDefaultPragmaPack(
- Sema::PragmaPackDiagnoseKind::NonDefaultStateAtInclude, IncludeLoc);
- }
- break;
- }
- case ExitFile:
- if (!IncludeStack.empty())
- S->DiagnoseNonDefaultPragmaPack(
- Sema::PragmaPackDiagnoseKind::ChangedStateAtExit,
- IncludeStack.pop_back_val());
- break;
- default:
- break;
- }
- }
-};
-
-} // end namespace sema
-} // end namespace clang
-
Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer,
TranslationUnitKind TUKind, CodeCompleteConsumer *CodeCompleter)
: ExternalSource(nullptr), isMultiplexExternalSource(false),
@@ -165,12 +122,6 @@ Sema::Sema(Preprocessor &pp, ASTContext
// Initilization of data sharing attributes stack for OpenMP
InitDataSharingAttributesStack();
-
- std::unique_ptr<sema::SemaPPCallbacks> Callbacks =
- llvm::make_unique<sema::SemaPPCallbacks>();
- SemaPPCallbackHandler = Callbacks.get();
- PP.addPPCallbacks(std::move(Callbacks));
- SemaPPCallbackHandler->set(*this);
}
void Sema::addImplicitTypedef(StringRef Name, QualType T) {
@@ -355,10 +306,6 @@ Sema::~Sema() {
// Destroys data sharing attributes stack for OpenMP
DestroyDataSharingAttributesStack();
- // Detach from the PP callback handler which outlives Sema since it's owned
- // by the preprocessor.
- SemaPPCallbackHandler->reset();
-
assert(DelayedTypos.empty() && "Uncorrected typos!");
}
@@ -819,7 +766,6 @@ void Sema::ActOnEndOfTranslationUnit() {
CheckDelayedMemberExceptionSpecs();
}
- DiagnoseUnterminatedPragmaPack();
DiagnoseUnterminatedPragmaAttribute();
// All delayed member exception specs should be checked or we end up accepting
Modified: cfe/branches/release_50/lib/Sema/SemaAttr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/lib/Sema/SemaAttr.cpp?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/lib/Sema/SemaAttr.cpp (original)
+++ cfe/branches/release_50/lib/Sema/SemaAttr.cpp Wed Jul 19 06:02:51 2017
@@ -202,40 +202,6 @@ void Sema::ActOnPragmaPack(SourceLocatio
PackStack.Act(PragmaLoc, Action, SlotLabel, AlignmentVal);
}
-void Sema::DiagnoseNonDefaultPragmaPack(PragmaPackDiagnoseKind Kind,
- SourceLocation IncludeLoc) {
- if (Kind == PragmaPackDiagnoseKind::NonDefaultStateAtInclude) {
- SourceLocation PrevLocation = PackStack.CurrentPragmaLocation;
- // Warn about non-default alignment at #includes (without redundant
- // warnings for the same directive in nested includes).
- if (PackStack.hasValue() &&
- (PackIncludeStack.empty() ||
- PackIncludeStack.back().second != PrevLocation)) {
- Diag(IncludeLoc, diag::warn_pragma_pack_non_default_at_include);
- Diag(PrevLocation, diag::note_pragma_pack_here);
- }
- PackIncludeStack.push_back(
- {PackStack.CurrentValue,
- PackStack.hasValue() ? PrevLocation : SourceLocation()});
- return;
- }
-
- assert(Kind == PragmaPackDiagnoseKind::ChangedStateAtExit && "invalid kind");
- unsigned PreviousValue = PackIncludeStack.pop_back_val().first;
- // Warn about modified alignment after #includes.
- if (PreviousValue != PackStack.CurrentValue) {
- Diag(IncludeLoc, diag::warn_pragma_pack_modified_after_include);
- Diag(PackStack.CurrentPragmaLocation, diag::note_pragma_pack_here);
- }
-}
-
-void Sema::DiagnoseUnterminatedPragmaPack() {
- if (PackStack.Stack.empty())
- return;
- for (const auto &StackSlot : llvm::reverse(PackStack.Stack))
- Diag(StackSlot.PragmaPushLocation, diag::warn_pragma_pack_no_pop_eof);
-}
-
void Sema::ActOnPragmaMSStruct(PragmaMSStructKind Kind) {
MSStructPragmaOn = (Kind == PMSST_ON);
}
@@ -283,8 +249,7 @@ void Sema::PragmaStack<ValueType>::Act(S
return;
}
if (Action & PSK_Push)
- Stack.emplace_back(StackSlotLabel, CurrentValue, CurrentPragmaLocation,
- PragmaLocation);
+ Stack.push_back(Slot(StackSlotLabel, CurrentValue, CurrentPragmaLocation));
else if (Action & PSK_Pop) {
if (!StackSlotLabel.empty()) {
// If we've got a label, try to find it and jump there.
Modified: cfe/branches/release_50/lib/Serialization/ASTReader.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/lib/Serialization/ASTReader.cpp?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/lib/Serialization/ASTReader.cpp (original)
+++ cfe/branches/release_50/lib/Serialization/ASTReader.cpp Wed Jul 19 06:02:51 2017
@@ -3384,7 +3384,6 @@ ASTReader::ReadASTBlock(ModuleFile &F, u
PragmaPackStackEntry Entry;
Entry.Value = Record[Idx++];
Entry.Location = ReadSourceLocation(F, Record[Idx++]);
- Entry.PushLocation = ReadSourceLocation(F, Record[Idx++]);
PragmaPackStrings.push_back(ReadString(Record, Idx));
Entry.SlotLabel = PragmaPackStrings.back();
PragmaPackStack.push_back(Entry);
@@ -7580,14 +7579,13 @@ void ASTReader::UpdateSema() {
"Expected a default alignment value");
SemaObj->PackStack.Stack.emplace_back(
PragmaPackStack.front().SlotLabel, SemaObj->PackStack.CurrentValue,
- SemaObj->PackStack.CurrentPragmaLocation,
- PragmaPackStack.front().PushLocation);
+ SemaObj->PackStack.CurrentPragmaLocation);
DropFirst = true;
}
for (const auto &Entry :
llvm::makeArrayRef(PragmaPackStack).drop_front(DropFirst ? 1 : 0))
SemaObj->PackStack.Stack.emplace_back(Entry.SlotLabel, Entry.Value,
- Entry.Location, Entry.PushLocation);
+ Entry.Location);
if (PragmaPackCurrentLocation.isInvalid()) {
assert(*PragmaPackCurrentValue == SemaObj->PackStack.DefaultValue &&
"Expected a default alignment value");
Modified: cfe/branches/release_50/lib/Serialization/ASTWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/lib/Serialization/ASTWriter.cpp?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/lib/Serialization/ASTWriter.cpp (original)
+++ cfe/branches/release_50/lib/Serialization/ASTWriter.cpp Wed Jul 19 06:02:51 2017
@@ -4295,7 +4295,6 @@ void ASTWriter::WritePackPragmaOptions(S
for (const auto &StackEntry : SemaRef.PackStack.Stack) {
Record.push_back(StackEntry.Value);
AddSourceLocation(StackEntry.PragmaLocation, Record);
- AddSourceLocation(StackEntry.PragmaPushLocation, Record);
AddString(StackEntry.StackSlotLabel, Record);
}
Stream.EmitRecord(PACK_PRAGMA_OPTIONS, Record);
Modified: cfe/branches/release_50/test/OpenMP/declare_simd_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/OpenMP/declare_simd_messages.cpp?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/test/OpenMP/declare_simd_messages.cpp (original)
+++ cfe/branches/release_50/test/OpenMP/declare_simd_messages.cpp Wed Jul 19 06:02:51 2017
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -triple=x86_64-pc-win32 -verify -fopenmp -x c++ -std=c++11 -fms-extensions -Wno-pragma-pack %s
+// RUN: %clang_cc1 -triple=x86_64-pc-win32 -verify -fopenmp -x c++ -std=c++11 -fms-extensions %s
// expected-error at +1 {{expected an OpenMP directive}}
#pragma omp declare
Modified: cfe/branches/release_50/test/PCH/pragma-pack.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/PCH/pragma-pack.c?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/test/PCH/pragma-pack.c (original)
+++ cfe/branches/release_50/test/PCH/pragma-pack.c Wed Jul 19 06:02:51 2017
@@ -1,21 +1,21 @@
// Test this without pch.
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DSET
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DRESET
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH_POP
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -Wno-pragma-pack -DPUSH_POP_LABEL
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DSET
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DRESET
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DPUSH
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DPUSH_POP
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -include %s -verify -fsyntax-only -DPUSH_POP_LABEL
// Test with pch.
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DSET -emit-pch -o %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DSET -verify -include-pch %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DRESET -emit-pch -o %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DRESET -verify -include-pch %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH -emit-pch -o %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH -verify -include-pch %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP -emit-pch -o %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP -verify -include-pch %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP_LABEL -emit-pch -o %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -Wno-pragma-pack -DPUSH_POP_LABEL -verify -include-pch %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DSET -emit-pch -o %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DSET -verify -include-pch %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DRESET -emit-pch -o %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DRESET -verify -include-pch %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH -emit-pch -o %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH -verify -include-pch %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH_POP -emit-pch -o %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH_POP -verify -include-pch %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH_POP_LABEL -emit-pch -o %t
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -DPUSH_POP_LABEL -verify -include-pch %t
#ifndef HEADER
#define HEADER
Removed: cfe/branches/release_50/test/PCH/suspicious-pragma-pack.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/PCH/suspicious-pragma-pack.c?rev=308456&view=auto
==============================================================================
--- cfe/branches/release_50/test/PCH/suspicious-pragma-pack.c (original)
+++ cfe/branches/release_50/test/PCH/suspicious-pragma-pack.c (removed)
@@ -1,8 +0,0 @@
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -verify -emit-pch -o %t
-// RUN: %clang_cc1 -triple x86_64-apple-darwin10 %s -verify -include-pch %t
-
-#ifndef HEADER
-#define HEADER
-#pragma pack (push, 1)
-#endif
-// expected-warning at -2 {{unterminated '#pragma pack (push, ...)' at end of file}}
Modified: cfe/branches/release_50/test/Parser/pragma-options.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/Parser/pragma-options.c?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/test/Parser/pragma-options.c (original)
+++ cfe/branches/release_50/test/Parser/pragma-options.c Wed Jul 19 06:02:51 2017
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -triple i386-apple-darwin9 -Wno-pragma-pack -fsyntax-only -verify %s
+// RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s
/* expected-warning {{expected 'align' following '#pragma options'}} */ #pragma options
/* expected-warning {{expected '=' following '#pragma options align'}} */ #pragma options align
Modified: cfe/branches/release_50/test/Parser/pragma-options.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/Parser/pragma-options.cpp?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/test/Parser/pragma-options.cpp (original)
+++ cfe/branches/release_50/test/Parser/pragma-options.cpp Wed Jul 19 06:02:51 2017
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -triple i386-apple-darwin9 -Wno-pragma-pack -fsyntax-only -verify %s
+// RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -verify %s
// expected-no-diagnostics
class C {
Modified: cfe/branches/release_50/test/Parser/pragma-pack.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/Parser/pragma-pack.c?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/test/Parser/pragma-pack.c (original)
+++ cfe/branches/release_50/test/Parser/pragma-pack.c Wed Jul 19 06:02:51 2017
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -fsyntax-only -Wno-pragma-pack -verify %s
+// RUN: %clang_cc1 -fsyntax-only -verify %s
// Note that this puts the expected lines before the directives to work around
// limitations in the -verify mode.
Removed: cfe/branches/release_50/test/Sema/Inputs/pragma-pack1.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/Sema/Inputs/pragma-pack1.h?rev=308456&view=auto
==============================================================================
--- cfe/branches/release_50/test/Sema/Inputs/pragma-pack1.h (original)
+++ cfe/branches/release_50/test/Sema/Inputs/pragma-pack1.h (removed)
@@ -1,23 +0,0 @@
-
-#ifdef SET_FIRST_HEADER
-#pragma pack (16)
-#ifndef SET_SECOND_HEADER
-// expected-note at -2 2 {{previous '#pragma pack' directive that modifies alignment is here}}
-#else
-// expected-note at -4 1 {{previous '#pragma pack' directive that modifies alignment is here}}
-#endif
-// expected-warning at +3 {{non-default #pragma pack value might change the alignment of struct or union members in the included file}}
-#endif
-
-#include "pragma-pack2.h"
-
-#ifdef SET_SECOND_HEADER
-// expected-warning at -3 {{the current #pragma pack aligment value is modified in the included file}}
-#endif
-
-#ifdef PUSH_POP_FIRST_HEADER
-// This is fine, we don't change the current value.
-#pragma pack (push, 4)
-
-#pragma pack (pop)
-#endif
Removed: cfe/branches/release_50/test/Sema/Inputs/pragma-pack2.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/Sema/Inputs/pragma-pack2.h?rev=308456&view=auto
==============================================================================
--- cfe/branches/release_50/test/Sema/Inputs/pragma-pack2.h (original)
+++ cfe/branches/release_50/test/Sema/Inputs/pragma-pack2.h (removed)
@@ -1,6 +0,0 @@
-
-#ifdef SET_SECOND_HEADER
-#pragma pack (8) // expected-note 2 {{previous '#pragma pack' directive that modifies alignment is here}}
-#endif
-
-struct S { int x; };
Modified: cfe/branches/release_50/test/Sema/pragma-pack.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/Sema/pragma-pack.c?rev=308457&r1=308456&r2=308457&view=diff
==============================================================================
--- cfe/branches/release_50/test/Sema/pragma-pack.c (original)
+++ cfe/branches/release_50/test/Sema/pragma-pack.c Wed Jul 19 06:02:51 2017
@@ -25,8 +25,3 @@
#pragma pack(pop, 16)
/* expected-warning {{value of #pragma pack(show) == 16}} */ #pragma pack(show)
-
-// Warn about unbalanced pushes.
-#pragma pack (push,4) // expected-warning {{unterminated '#pragma pack (push, ...)' at end of file}}
-#pragma pack (push) // expected-warning {{unterminated '#pragma pack (push, ...)' at end of file}}
-#pragma pack ()
Removed: cfe/branches/release_50/test/Sema/suspicious-pragma-pack.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/Sema/suspicious-pragma-pack.c?rev=308456&view=auto
==============================================================================
--- cfe/branches/release_50/test/Sema/suspicious-pragma-pack.c (original)
+++ cfe/branches/release_50/test/Sema/suspicious-pragma-pack.c (removed)
@@ -1,44 +0,0 @@
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DSAFE -verify %s
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DSAFE -verify %s
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DPUSH_SET_HERE -verify %s
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DRESET_HERE -DSAFE -verify %s
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DSET_FIRST_HEADER -DWARN_MODIFIED_HEADER -verify %s
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DRESET_HERE -DSET_FIRST_HEADER -DWARN_MODIFIED_HEADER -verify %s
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DPUSH_SET_HERE -DSET_FIRST_HEADER -DWARN_MODIFIED_HEADER -verify %s
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DPUSH_SET_HERE -DSET_SECOND_HEADER -DWARN_MODIFIED_HEADER -verify %s
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_HERE -DPUSH_SET_HERE -DSET_FIRST_HEADER -DSET_SECOND_HEADER -DWARN_MODIFIED_HEADER -verify %s
-
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I %S/Inputs -DPUSH_POP_FIRST_HEADER -DSAFE -verify %s
-
-
-#ifdef SAFE
-// expected-no-diagnostics
-#endif
-
-#ifdef PUSH_HERE
-#pragma pack (push)
-#endif
-
-#ifdef PUSH_SET_HERE
-#pragma pack (push, 4) // expected-note {{previous '#pragma pack' directive that modifies alignment is here}}
-// expected-warning at +8 {{non-default #pragma pack value might change the alignment of struct or union members in the included file}}
-#endif
-
-#ifdef RESET_HERE
-#pragma pack (4)
-#pragma pack () // no warning after reset as the value is default.
-#endif
-
-#include "pragma-pack1.h"
-
-#ifdef WARN_MODIFIED_HEADER
-// expected-warning at -3 {{the current #pragma pack aligment value is modified in the included file}}
-#endif
-
-#ifdef PUSH_SET_HERE
-#pragma pack (pop)
-#endif
-
-#ifdef PUSH_HERE
-#pragma pack (pop)
-#endif
Removed: cfe/branches/release_50/test/SemaObjC/Inputs/empty.h
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/SemaObjC/Inputs/empty.h?rev=308456&view=auto
==============================================================================
--- cfe/branches/release_50/test/SemaObjC/Inputs/empty.h (original)
+++ cfe/branches/release_50/test/SemaObjC/Inputs/empty.h (removed)
@@ -1 +0,0 @@
-// empty
Removed: cfe/branches/release_50/test/SemaObjC/suspicious-pragma-pack.m
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_50/test/SemaObjC/suspicious-pragma-pack.m?rev=308456&view=auto
==============================================================================
--- cfe/branches/release_50/test/SemaObjC/suspicious-pragma-pack.m (original)
+++ cfe/branches/release_50/test/SemaObjC/suspicious-pragma-pack.m (removed)
@@ -1,6 +0,0 @@
-// RUN: %clang_cc1 -triple i686-apple-darwin9 -fsyntax-only -I%S/Inputs -verify %s
-
-#pragma pack (push, 1) // expected-note {{previous '#pragma pack' directive that modifies alignment is here}}
-#import "empty.h" // expected-warning {{non-default #pragma pack value might change the alignment of struct or union members in the included file}}
-
-#pragma pack (pop)
More information about the llvm-branch-commits
mailing list