On May 28, 2012, at 9:53, Charles Davis wrote: > Author: cdavis > Date: Mon May 28 11:53:33 2012 > New Revision: 157583 > > URL: http://llvm.org/viewvc/llvm-project?rev=157583&view=rev > Log: > Fix mangling of integral template arguments between 1 and 10. Add a test case > for this. Reported by Timur Iskhodzhanov. > > Modified: > cfe/trunk/lib/AST/MicrosoftMangle.cpp > cfe/trunk/test/CodeGenCXX/mangle-ms-templates.cpp > > Modified: cfe/trunk/lib/AST/MicrosoftMangle.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/MicrosoftMangle.cpp?rev=157583&r1=157582&r2=157583&view=diff > ============================================================================== > --- cfe/trunk/lib/AST/MicrosoftMangle.cpp (original) > +++ cfe/trunk/lib/AST/MicrosoftMangle.cpp Mon May 28 11:53:33 2012 > @@ -309,8 +309,8 @@ > return; > } > if (Value.uge(1) && Value.ule(10)) > - (Value-llvm::APSInt(llvm::APInt(Value.getBitWidth(), 1, > Value.isSigned()))).print(Out, > - > false); > + (Value-llvm::APSInt(llvm::APInt(Value.getBitWidth(), 1, > Value.isSigned()), > + Value.isUnsigned())).print(Out, false); > else { > // We have to build up the encoding in reverse order, so it will come > // out right when we write it out.
Since the value are known-positive now, how about this: llvm::APSInt PrintValue(Value); --PrintValue; PrintValue.print(Out, false); It seems clearer to me, and it uses fewer temporaries. Jordy _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
