summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2014-08-17 13:19:48 +0000
committerOlivier Goffart <ogoffart@woboq.com>2014-08-17 13:19:48 +0000
commitfc8f893192dfdea5e1b7f678fc2909b04698d97a (patch)
tree28b6006c45bf7fe5c1666effffdc32a09180ca06 /clang/lib/Basic
parent6bf77979e0b330a5172e8a59941109729dcf7775 (diff)
downloadbcm5719-llvm-fc8f893192dfdea5e1b7f678fc2909b04698d97a.tar.gz
bcm5719-llvm-fc8f893192dfdea5e1b7f678fc2909b04698d97a.zip
Fix assertion on asm register that are "%"
Name might be empty again after we removed the '%' prefix and Name[0] would assert. Found on code like register int foo asm("%" MACRO); where MACRO was supposed to be defined in a header file that was not found. llvm-svn: 215834
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/TargetInfo.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp
index aecf13b0085..a35298067bd 100644
--- a/clang/lib/Basic/TargetInfo.cpp
+++ b/clang/lib/Basic/TargetInfo.cpp
@@ -338,6 +338,8 @@ bool TargetInfo::isValidGCCRegisterName(StringRef Name) const {
// Get rid of any register prefix.
Name = removeGCCRegisterPrefix(Name);
+ if (Name.empty())
+ return false;
getGCCRegNames(Names, NumNames);
OpenPOWER on IntegriCloud