diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-03-04 23:39:17 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-03-04 23:39:17 +0000 |
commit | 2a1332245fcbde7a61675c0d22801e2f55f23512 (patch) | |
tree | e433e4368853e5322c76298805b44de50e32b9b4 /clang/lib/Sema/SemaAttr.cpp | |
parent | 0eb0efbb630284ffdf569aca9a68c7e15f8397c3 (diff) | |
download | bcm5719-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.cpp | 3 |
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); } |