aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/analyzer.js9
-rw-r--r--src/intertyper.js10
-rw-r--r--src/modules.js2
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',