diff options
author | Denis Zobnin <d.zobnin.bugzilla@gmail.com> | 2016-04-28 10:13:18 +0000 |
---|---|---|
committer | Denis Zobnin <d.zobnin.bugzilla@gmail.com> | 2016-04-28 10:13:18 +0000 |
commit | 2008dbb4ed56a93f0cb6cbd90721d9c469442b5f (patch) | |
tree | fbef55ef756e132952b1e58bea6c918ade0024cc /clang/lib/Sema/Sema.cpp | |
parent | 5b4faeec8705aeecd9c7d5cb90ece6f50c459195 (diff) | |
download | bcm5719-llvm-2008dbb4ed56a93f0cb6cbd90721d9c469442b5f.tar.gz bcm5719-llvm-2008dbb4ed56a93f0cb6cbd90721d9c469442b5f.zip |
[MS] Improved implementation of MS stack pragmas (vtordisp, *_seg)
Rework implementation of several MS pragmas that use internal stack:
vtordisp, {bss|code|const|data}_seg.
This patch:
1. Makes #pragma vtordisp use PragmaStack class as *_seg pragmas do;
2. Fixes "#pragma vtordisp()" behavior: it shouldn't affect stack;
3. Saves/restores the stacks on enter/exit a C++ method body.
llvm-svn: 267866
Diffstat (limited to 'clang/lib/Sema/Sema.cpp')
-rw-r--r-- | clang/lib/Sema/Sema.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 5a8e5510f75..07a2657177d 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -82,7 +82,7 @@ Sema::Sema(Preprocessor &pp, ASTContext &ctxt, ASTConsumer &consumer, PackContext(nullptr), MSStructPragmaOn(false), MSPointerToMemberRepresentationMethod( LangOpts.getMSPointerToMemberRepresentationMethod()), - VtorDispModeStack(1, MSVtorDispAttr::Mode(LangOpts.VtorDispMode)), + VtorDispStack(MSVtorDispAttr::Mode(LangOpts.VtorDispMode)), DataSegStack(nullptr), BSSSegStack(nullptr), ConstSegStack(nullptr), CodeSegStack(nullptr), CurInitSeg(nullptr), VisContext(nullptr), IsBuildingRecoveryCallExpr(false), |