diff options
author | John McCall <rjmccall@apple.com> | 2010-08-26 09:15:37 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-08-26 09:15:37 +0000 |
commit | ea318642072d3d94b5c3cff0fa6f4b33d2db0768 (patch) | |
tree | 2780521c7b66a98236c295de928ff6badb50c129 /lib/Sema/SemaAttr.cpp | |
parent | a8b7a7d3eaa51dd200cba1e5541f2542d24d7a6e (diff) |
Move things around so that Sema.h no longer depends on even DeclBase.h.
It still depends on Type because DeclarationName.h does.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112177 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaAttr.cpp')
-rw-r--r-- | lib/Sema/SemaAttr.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/Sema/SemaAttr.cpp b/lib/Sema/SemaAttr.cpp index 4ba1a236ff..917bf2bc3b 100644 --- a/lib/Sema/SemaAttr.cpp +++ b/lib/Sema/SemaAttr.cpp @@ -315,6 +315,16 @@ void Sema::FreeVisContext() { VisContext = 0; } +static void PushPragmaVisibility(Sema &S, VisibilityAttr::VisibilityType type, + SourceLocation loc) { + // Put visibility on stack. + if (!S.VisContext) + S.VisContext = new VisStack; + + VisStack *Stack = static_cast<VisStack*>(S.VisContext); + Stack->push_back(std::make_pair(type, loc)); +} + void Sema::ActOnPragmaVisibility(bool IsPush, const IdentifierInfo* VisType, SourceLocation PragmaLoc) { if (IsPush) { @@ -333,20 +343,14 @@ void Sema::ActOnPragmaVisibility(bool IsPush, const IdentifierInfo* VisType, VisType->getName(); return; } - PushPragmaVisibility(type, PragmaLoc); + PushPragmaVisibility(*this, type, PragmaLoc); } else { PopPragmaVisibility(); } } -void Sema::PushPragmaVisibility(VisibilityAttr::VisibilityType type, - SourceLocation loc) { - // Put visibility on stack. - if (!VisContext) - VisContext = new VisStack; - - VisStack *Stack = static_cast<VisStack*>(VisContext); - Stack->push_back(std::make_pair(type, loc)); +void Sema::PushVisibilityAttr(const VisibilityAttr *Attr) { + PushPragmaVisibility(*this, Attr->getVisibility(), Attr->getLocation()); } void Sema::PopPragmaVisibility() { |