OSDN Git Service

Fix crash in MCExpr::print.
authorPete Cooper <peter_cooper@apple.com>
Fri, 29 May 2015 17:19:11 +0000 (17:19 +0000)
committerPete Cooper <peter_cooper@apple.com>
Fri, 29 May 2015 17:19:11 +0000 (17:19 +0000)
Symbols are no longer required to be named, but this leads to a crash here if an
unnamed symbol checks that its first character is '$'.

Change the code to first check for a name, then check its first character.

No test case i'm afraid as this is debugging code, but any test case with temp labels
and 'llc --debug --filetype=obj' would have crashed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238579 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MCExpr.cpp

index 1c0dc3f..1b328ac 100644 (file)
@@ -43,7 +43,7 @@ void MCExpr::print(raw_ostream &OS) const {
     const MCSymbol &Sym = SRE.getSymbol();
     // Parenthesize names that start with $ so that they don't look like
     // absolute names.
-    bool UseParens = Sym.getName()[0] == '$';
+    bool UseParens = !Sym.getName().empty() && Sym.getName()[0] == '$';
     if (UseParens)
       OS << '(' << Sym << ')';
     else