MSVC 2013 does not ICE on this code in the same fashion that MSVC 2012 did; NFC.
authorAaron Ballman <aaron@aaronballman.com>
Mon, 16 Feb 2015 19:33:36 +0000 (19:33 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Mon, 16 Feb 2015 19:33:36 +0000 (19:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229422 91177308-0d34-0410-b5e6-96231b3b80d8

lib/TableGen/TGParser.cpp
utils/TableGen/CodeGenRegisters.cpp

index 2445e58e1b9cfd9c14959352a7dc87788dd0be01..44f6a6ea9f31588b0a9051ed98ee3372b6d85c95 100644 (file)
@@ -385,8 +385,7 @@ static bool isObjectStart(tgtok::TokKind K) {
 /// GetNewAnonymousName - Generate a unique anonymous name that can be used as
 /// an identifier.
 std::string TGParser::GetNewAnonymousName() {
-  unsigned Tmp = AnonCounter++; // MSVC2012 ICEs without this.
-  return "anonymous_" + utostr(Tmp);
+  return "anonymous_" + utostr(AnonCounter++);
 }
 
 /// ParseObjectName - If an object name is specified, return it.  Otherwise,
index 2302eb7e5cf2ba084d8cd53127c053cb20933a87..37f890531addb70d08c19c38aca4d2cde8329c49 100644 (file)
@@ -656,9 +656,7 @@ CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank, Record *R)
   // Rename anonymous register classes.
   if (R->getName().size() > 9 && R->getName()[9] == '.') {
     static unsigned AnonCounter = 0;
-    R->setName("AnonRegClass_" + utostr(AnonCounter));
-    // MSVC2012 ICEs if AnonCounter++ is directly passed to utostr.
-    ++AnonCounter;
+    R->setName("AnonRegClass_" + utostr(AnonCounter++));
   }
 
   std::vector<Record*> TypeList = R->getValueAsListOfDefs("RegTypes");