diff options
author | George Rimar <grimar@accesssoftek.com> | 2017-03-10 10:31:56 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2017-03-10 10:31:56 +0000 |
commit | 5d8aea100926f0258334b3ef3efa523aeebcd224 (patch) | |
tree | 644b1c946d8b381e6cb608fd9c492c134d8b3740 /llvm/lib | |
parent | b7da0eb50e1188bda2f0635bc63ab89e0932a054 (diff) | |
download | bcm5719-llvm-5d8aea100926f0258334b3ef3efa523aeebcd224.tar.gz bcm5719-llvm-5d8aea100926f0258334b3ef3efa523aeebcd224.zip |
WholeProgramDevirt: Fixed compilation error under MSVS2015.
It was introduced in:
r296945
WholeProgramDevirt: Implement exporting for single-impl devirtualization.
---------------------
r296939
WholeProgramDevirt: Add any unsuccessful llvm.type.checked.load devirtualizations to the list of llvm.type.test users.
---------------------
Microsoft Visual Studio Community 2015
Version 14.0.23107.0 D14REL
Does not compile that code without additional brackets, showing multiple error like below:
WholeProgramDevirt.cpp(1216): error C2958: the left bracket '[' found at 'c:\access_softek\llvm\lib\transforms\ipo\wholeprogramdevirt.cpp(1216)' was not matched correctly
WholeProgramDevirt.cpp(1216): error C2143: syntax error: missing ']' before '}'
WholeProgramDevirt.cpp(1216): error C2143: syntax error: missing ';' before '}'
WholeProgramDevirt.cpp(1216): error C2059: syntax error: ']'
llvm-svn: 297451
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp index 51d30f3c244..b5d87b16740 100644 --- a/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp +++ b/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp @@ -1211,25 +1211,34 @@ bool DevirtModule::run() { if (!FS) continue; // FIXME: Only add live functions. - for (FunctionSummary::VFuncId VF : FS->type_test_assume_vcalls()) - for (Metadata *MD : MetadataByGUID[VF.GUID]) + for (FunctionSummary::VFuncId VF : FS->type_test_assume_vcalls()) { + for (Metadata *MD : MetadataByGUID[VF.GUID]) { CallSlots[{MD, VF.Offset}].CSInfo.SummaryHasTypeTestAssumeUsers = true; - for (FunctionSummary::VFuncId VF : FS->type_checked_load_vcalls()) - for (Metadata *MD : MetadataByGUID[VF.GUID]) + } + } + for (FunctionSummary::VFuncId VF : FS->type_checked_load_vcalls()) { + for (Metadata *MD : MetadataByGUID[VF.GUID]) { CallSlots[{MD, VF.Offset}] .CSInfo.SummaryTypeCheckedLoadUsers.push_back(FS); + } + } for (const FunctionSummary::ConstVCall &VC : - FS->type_test_assume_const_vcalls()) - for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID]) + FS->type_test_assume_const_vcalls()) { + for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID]) { CallSlots[{MD, VC.VFunc.Offset}] - .ConstCSInfo[VC.Args].SummaryHasTypeTestAssumeUsers = true; + .ConstCSInfo[VC.Args] + .SummaryHasTypeTestAssumeUsers = true; + } + } for (const FunctionSummary::ConstVCall &VC : - FS->type_checked_load_const_vcalls()) - for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID]) + FS->type_checked_load_const_vcalls()) { + for (Metadata *MD : MetadataByGUID[VC.VFunc.GUID]) { CallSlots[{MD, VC.VFunc.Offset}] .ConstCSInfo[VC.Args] .SummaryTypeCheckedLoadUsers.push_back(FS); + } + } } } } |