Thanks! It sounds like this rewrite step is still our best idea for handling 
this. I'm going to land this then.

================
Comment at: lib/CodeGen/TargetInfo.cpp:645
@@ +644,3 @@
+      size_t DigitStart = Pos;
+      size_t DigitEnd = AsmString.find_first_not_of("0123456789", DigitStart);
+      if (DigitEnd == std::string::npos)
----------------
majnemer wrote:
> If the character at DigitStart is not a number, DigitStart == DigitEnd.
That should be OK, getAsInteger will return an error.

================
Comment at: lib/CodeGen/TargetInfo.cpp:657
@@ +656,3 @@
+      }
+      Pos = DigitEnd;
+    }
----------------
majnemer wrote:
> If DigitStart == DigitEnd, wouldn't Pos be unchanged at this point? I guess 
> that would be handled by the next iteration of the loop.
We should be fine. getAsInteger should fail, so we hit the else clause, stream 
an empty string, and continue the next iteration looking for dollars. That 
said, this would already be a malformed inline asm string, which Sema shouldn't 
produce.

Of course, you never know with stringly typed data structures. :)

http://reviews.llvm.org/D5177



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to