diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/analyzer.js | 9 | ||||
-rw-r--r-- | src/intertyper.js | 10 | ||||
-rw-r--r-- | src/modules.js | 2 |
3 files changed, 7 insertions, 14 deletions
diff --git a/src/analyzer.js b/src/analyzer.js index a4e7d52d..c5a8cea3 100644 --- a/src/analyzer.js +++ b/src/analyzer.js @@ -87,7 +87,7 @@ function analyzer(data, sidePass) { } else if (item.functions.length > 0 && item.functions.slice(-1)[0].endLineNum === null) { // Internal line if (!currLabelFinished) { - item.functions.slice(-1)[0].labels.slice(-1)[0].lines.push(subItem); // If this line fails, perhaps missing a label? LLVM_STYLE related? + item.functions.slice(-1)[0].labels.slice(-1)[0].lines.push(subItem); // If this line fails, perhaps missing a label? if (subItem.intertype === 'branch') { currLabelFinished = true; } @@ -1018,8 +1018,11 @@ function analyzer(data, sidePass) { function getActualLabelId(labelId) { var label = func.labelsDict[labelId]; if (!label) { - assert(!unknownEntry, 'More than one unknown label in phi, so both cannot be an unlabelled entry, in ' + func.ident); - unknownEntry = labelId; + if (!unknownEntry) { + unknownEntry = labelId; + } else { + assert(labelId == unknownEntry, 'More than one unknown label in phi, so both cannot be an unlabelled entry, in ' + func.ident); + } labelId = ENTRY_IDENT; label = func.labelsDict[labelId]; assert(label, 'Cannot find entry label when looking for it after seeing an unknown label in a phi'); diff --git a/src/intertyper.js b/src/intertyper.js index d03810d4..341598fc 100644 --- a/src/intertyper.js +++ b/src/intertyper.js @@ -29,14 +29,6 @@ function intertyper(data, sidePass, baseLineNums) { dprint('framework', 'Big picture: Starting intertyper, main pass=' + mainPass); - if (mainPass) { - if (LLVM_STYLE === null) { - // new = clang on 2.8, old = llvm-gcc anywhere or clang on 2.7 - LLVM_STYLE = (data.indexOf('<label>') == -1 && data.indexOf('entry:') != -1) ? 'old' : 'new'; - //dprint('LLVM_STYLE: ' + LLVM_STYLE); - } - } - // Substrate var substrate = new Substrate('Intertyper'); @@ -347,7 +339,7 @@ function intertyper(data, sidePass, baseLineNums) { if (tokensLength >= 3 && token0Text == 'landingpad') return 'Landingpad'; } else if (item.indent === 0) { - if ((tokensLength >= 1 && token0Text.substr(-1) == ':') || // LLVM 2.7 format, or llvm-gcc in 2.8 + if ((tokensLength >= 1 && token0Text.substr(-1) == ':') || (tokensLength >= 3 && token1Text == '<label>')) return 'Label'; if (tokensLength >= 4 && token0Text == 'declare') diff --git a/src/modules.js b/src/modules.js index cfc29014..52f14c2f 100644 --- a/src/modules.js +++ b/src/modules.js @@ -2,8 +2,6 @@ // Various namespace-like modules -var LLVM_STYLE = null; - var LLVM = { LINKAGES: set('private', 'linker_private', 'linker_private_weak', 'linker_private_weak_def_auto', 'internal', 'available_externally', 'linkonce', 'common', 'weak', 'appending', 'extern_weak', 'linkonce_odr', |