diff options
author | Erich Keane <erich.keane@intel.com> | 2018-10-25 19:13:46 +0000 |
---|---|---|
committer | Erich Keane <erich.keane@intel.com> | 2018-10-25 19:13:46 +0000 |
commit | 85822b304ef048b6a026e2dd0a8571c2da729d2d (patch) | |
tree | 97b12799a2c9ea54e8ae96a02dfd08b81c7e4833 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | d4bf99a540e73b1e8948d10eecb533b6a3e40457 (diff) | |
download | llvm-85822b304ef048b6a026e2dd0a8571c2da729d2d.zip llvm-85822b304ef048b6a026e2dd0a8571c2da729d2d.tar.gz llvm-85822b304ef048b6a026e2dd0a8571c2da729d2d.tar.bz2 |
Change keep-static-consts to work on static storage duration, not
storage class.
To be more in line with what GCC does, switch the condition to be based
on the Static Storage duration instead of the storage class.
Change-Id: I8e959d762433cda48855099353bf3c950b9d54b8
llvm-svn: 345302
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 129a770..9192d86 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -1386,7 +1386,8 @@ void CodeGenModule::SetCommonAttributes(GlobalDecl GD, llvm::GlobalValue *GV) { if (CodeGenOpts.KeepStaticConsts && D && isa<VarDecl>(D)) { const auto *VD = cast<VarDecl>(D); - if (VD->getType().isConstQualified() && VD->getStorageClass() == SC_Static) + if (VD->getType().isConstQualified() && + VD->getStorageDuration() == SD_Static) addUsedGlobal(GV); } } @@ -2024,7 +2025,7 @@ bool CodeGenModule::MustBeEmitted(const ValueDecl *Global) { if (CodeGenOpts.KeepStaticConsts) { const auto *VD = dyn_cast<VarDecl>(Global); if (VD && VD->getType().isConstQualified() && - VD->getStorageClass() == SC_Static) + VD->getStorageDuration() == SD_Static) return true; } |