Merge pull request #466 from wilzbach/fix-unused_label
Fix AssertError on unknown label in unused_label merged-on-behalf-of: Sebastian Wilzbach <sebi.wilzbach@gmail.com>
This commit is contained in:
commit
38c4d2d0eb
|
@ -143,8 +143,11 @@ private:
|
||||||
{
|
{
|
||||||
foreach (label; current.byValue())
|
foreach (label; current.byValue())
|
||||||
{
|
{
|
||||||
assert(label.line != size_t.max && label.column != size_t.max);
|
if (label.line == size_t.max || label.column == size_t.max)
|
||||||
if (!label.used)
|
{
|
||||||
|
// TODO: handle unknown labels
|
||||||
|
}
|
||||||
|
else if (!label.used)
|
||||||
{
|
{
|
||||||
addErrorMessage(label.line, label.column, "dscanner.suspicious.unused_label",
|
addErrorMessage(label.line, label.column, "dscanner.suspicious.unused_label",
|
||||||
"Label \"" ~ label.name ~ "\" is not used.");
|
"Label \"" ~ label.name ~ "\" is not used.");
|
||||||
|
@ -225,5 +228,24 @@ unittest
|
||||||
}
|
}
|
||||||
}c, sac);
|
}c, sac);
|
||||||
|
|
||||||
|
// from std.math
|
||||||
|
assertAnalyzerWarnings(q{
|
||||||
|
real polyImpl() {
|
||||||
|
asm {
|
||||||
|
jecxz return_ST;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}c, sac);
|
||||||
|
|
||||||
|
// a label might be hard to find, e.g. in a mixin
|
||||||
|
assertAnalyzerWarnings(q{
|
||||||
|
real polyImpl() {
|
||||||
|
mixin("return_ST: return 1;");
|
||||||
|
asm {
|
||||||
|
jecxz return_ST;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}c, sac);
|
||||||
|
|
||||||
stderr.writeln("Unittest for UnusedLabelCheck passed.");
|
stderr.writeln("Unittest for UnusedLabelCheck passed.");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue