diff options
| author | Olivier Goffart <ogoffart@woboq.com> | 2014-08-17 13:19:48 +0000 |
|---|---|---|
| committer | Olivier Goffart <ogoffart@woboq.com> | 2014-08-17 13:19:48 +0000 |
| commit | fc8f893192dfdea5e1b7f678fc2909b04698d97a (patch) | |
| tree | 28b6006c45bf7fe5c1666effffdc32a09180ca06 /clang/lib/Basic | |
| parent | 6bf77979e0b330a5172e8a59941109729dcf7775 (diff) | |
| download | bcm5719-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.cpp | 2 |
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); |

