summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaAttr.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2015-03-04 23:39:17 +0000
committerReid Kleckner <reid@kleckner.net>2015-03-04 23:39:17 +0000
commit2a1332245fcbde7a61675c0d22801e2f55f23512 (patch)
treee433e4368853e5322c76298805b44de50e32b9b4 /clang/lib/Sema/SemaAttr.cpp
parent0eb0efbb630284ffdf569aca9a68c7e15f8397c3 (diff)
downloadbcm5719-llvm-2a1332245fcbde7a61675c0d22801e2f55f23512.tar.gz
bcm5719-llvm-2a1332245fcbde7a61675c0d22801e2f55f23512.zip
Implement section pragma feedback on r205810
Mostly short-circuits some conditionals. Adds target validation of sections passed to these pragmas. llvm-svn: 231317
Diffstat (limited to 'clang/lib/Sema/SemaAttr.cpp')
-rw-r--r--clang/lib/Sema/SemaAttr.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp
index e3b66bf9134..5a29bad29f4 100644
--- a/clang/lib/Sema/SemaAttr.cpp
+++ b/clang/lib/Sema/SemaAttr.cpp
@@ -422,6 +422,9 @@ void Sema::ActOnPragmaMSSeg(SourceLocation PragmaLocation,
if (Action & PSK_Pop && Stack->Stack.empty())
Diag(PragmaLocation, diag::warn_pragma_pop_failed) << PragmaName
<< "stack empty";
+ if (SegmentName &&
+ !checkSectionName(SegmentName->getLocStart(), SegmentName->getString()))
+ return;
Stack->Act(PragmaLocation, Action, StackSlotLabel, SegmentName);
}
OpenPOWER on IntegriCloud