mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 11:02:59 +02:00
[ThinLTO] Fix unreachable code when parsing summary entries.
Summary: Early returns were causing some code to be skipped. This was missed since the summary entries are typically at the end of the llvm assembly file. Fixes PR41663. Reviewers: RKSimon, wristow Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61355 llvm-svn: 359697
This commit is contained in:
parent
54445e6cec
commit
1eace23e47
@ -821,19 +821,23 @@ bool LLParser::ParseSummaryEntry() {
|
||||
if (!Index)
|
||||
return SkipModuleSummaryEntry();
|
||||
|
||||
bool result = false;
|
||||
switch (Lex.getKind()) {
|
||||
case lltok::kw_gv:
|
||||
return ParseGVEntry(SummaryID);
|
||||
result = ParseGVEntry(SummaryID);
|
||||
break;
|
||||
case lltok::kw_module:
|
||||
return ParseModuleEntry(SummaryID);
|
||||
result = ParseModuleEntry(SummaryID);
|
||||
break;
|
||||
case lltok::kw_typeid:
|
||||
return ParseTypeIdEntry(SummaryID);
|
||||
result = ParseTypeIdEntry(SummaryID);
|
||||
break;
|
||||
default:
|
||||
return Error(Lex.getLoc(), "unexpected summary kind");
|
||||
result = Error(Lex.getLoc(), "unexpected summary kind");
|
||||
break;
|
||||
}
|
||||
Lex.setIgnoreColonInIdentifiers(false);
|
||||
return false;
|
||||
return result;
|
||||
}
|
||||
|
||||
static bool isValidVisibilityForLinkage(unsigned V, unsigned L) {
|
||||
|
@ -94,3 +94,7 @@
|
||||
; CHECK: ^26 = typeid: (name: "_ZTS1A", summary: (typeTestRes: (kind: allOnes, sizeM1BitWidth: 7), wpdResolutions: ((offset: 0, wpdRes: (kind: branchFunnel)), (offset: 8, wpdRes: (kind: singleImpl, singleImplName: "_ZN1A1nEi")), (offset: 16, wpdRes: (kind: indir, resByArg: (args: (1, 2), byArg: (kind: indir, byte: 2, bit: 3), args: (3), byArg: (kind: uniformRetVal, info: 1), args: (4), byArg: (kind: uniqueRetVal, info: 1), args: (5), byArg: (kind: virtualConstProp))))))) ; guid = 7004155349499253778
|
||||
; CHECK: ^27 = typeid: (name: "_ZTS1D", summary: (typeTestRes: (kind: byteArray, sizeM1BitWidth: 0))) ; guid = 9614786172484273522
|
||||
; CHECK: ^28 = typeid: (name: "_ZTS1E", summary: (typeTestRes: (kind: unsat, sizeM1BitWidth: 0))) ; guid = 17437243864166745132
|
||||
|
||||
; Make sure parsing of a non-summary entry containing a ":" does not fail
|
||||
; after summary parsing, which handles colons differently.
|
||||
!0 = !DIFile(filename: "thinlto-summary.ll", directory: "", source: "")
|
||||
|
Loading…
Reference in New Issue
Block a user