[llvm-commits] [compiler-rt] r171273 - in /compiler-rt/trunk/lib/ubsan: lit_tests/Integer/negate-overflow.cpp ubsan_handlers.cc

Michael Gottesman mgottesman at apple.com
Sun Dec 30 23:20:45 PST 2012


Same here. Everyone makes mistakes = ). But seriously building before committing is good = p. (Paranoia can be an asset sometimes ; ).

Michael

On Dec 31, 2012, at 8:33 AM, Chandler Carruth <chandlerc at google.com> wrote:

> No biggie. =] I only reverted to get the bots moving again.
> 
> 
> On Sun, Dec 30, 2012 at 10:27 PM, Will Dietz <wdietz2 at illinois.edu> wrote:
> I'll commit fixed version shortly.
> 
> Very sorry, and understood regarding not breaking the build being paramount.
> 
> Happened due to machine I commit from not being the same as the one I
> develop (and test) on for reasons not worth going into.  I'll fix that
> so this won't happen again.
> 
> Sincerely,
> 
> ~Will
> 
> On Mon, Dec 31, 2012 at 12:18 AM, Chandler Carruth <chandlerc at google.com> wrote:
> > This breaks everyone's build -- this just doesn't compile.
> >
> > I've reverted this in r171277 until Will can look at it. Will, please double
> > check that you've built successfully before re-committing it.
> >
> >
> > On Sun, Dec 30, 2012 at 10:05 PM, Michael Gottesman <mgottesman at apple.com>
> > wrote:
> >>
> >> This causes a build failure on Darwin:
> >>
> >> compiler-rt/lib/ubsan/ubsan_handlers.cc:107:10: error: use of undeclared
> >> identifier 'Loc'
> >>     Diag(Loc, DL_Error,
> >>          ^
> >> compiler-rt/lib/ubsan/ubsan_handlers.cc:112:10: error: use of undeclared
> >> identifier 'Loc'
> >>     Diag(Loc, DL_Error,
> >>
> >> I noticed in the function handleTypeMismatchImpl you explicitly grab Loc
> >> so I am assuming this is an error in your code.
> >>
> >> Can you fix this?
> >>
> >> Michael
> >>
> >> On Dec 31, 2012, at 4:20 AM, Will Dietz <wdietz2 at illinois.edu> wrote:
> >>
> >> Author: wdietz2
> >> Date: Sun Dec 30 20:20:55 2012
> >> New Revision: 171273
> >>
> >> URL: http://llvm.org/viewvc/llvm-project?rev=171273&view=rev
> >> Log:
> >> [ubsan] Don't suggest casting to unsigned for unsigned unary minus
> >> overflow.
> >>
> >> Modified:
> >>    compiler-rt/trunk/lib/ubsan/lit_tests/Integer/negate-overflow.cpp
> >>    compiler-rt/trunk/lib/ubsan/ubsan_handlers.cc
> >>
> >> Modified:
> >> compiler-rt/trunk/lib/ubsan/lit_tests/Integer/negate-overflow.cpp
> >> URL:
> >> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/ubsan/lit_tests/Integer/negate-overflow.cpp?rev=171273&r1=171272&r2=171273&view=diff
> >>
> >> ==============================================================================
> >> --- compiler-rt/trunk/lib/ubsan/lit_tests/Integer/negate-overflow.cpp
> >> (original)
> >> +++ compiler-rt/trunk/lib/ubsan/lit_tests/Integer/negate-overflow.cpp Sun
> >> Dec 30 20:20:55 2012
> >> @@ -1,7 +1,12 @@
> >> -// RUN: %clang -fsanitize=signed-integer-overflow %s -o %t && %t 2>&1 |
> >> FileCheck %s
> >> +// RUN: %clang -fsanitize=signed-integer-overflow %s -o %t && %t 2>&1 |
> >> FileCheck %s --check-prefix=CHECKS
> >> +// RUN: %clang -fsanitize=unsigned-integer-overflow %s -o %t && %t 2>&1 |
> >> FileCheck %s --check-prefix=CHECKU
> >>
> >> int main() {
> >> +  // CHECKS-NOT: runtime error
> >> +  // CHECKU: negate-overflow.cpp:[[@LINE+2]]:3: runtime error: negation
> >> of 2147483648 cannot be represented in type 'unsigned int'
> >> +  // CHECKU-NOT: cast to an unsigned
> >>   -unsigned(-0x7fffffff - 1); // ok
> >> -  // CHECK: negate-overflow.cpp:6:10: runtime error: negation of
> >> -2147483648 cannot be represented in type 'int'; cast to an unsigned type to
> >> negate this value to itself
> >> +  // CHECKS: negate-overflow.cpp:[[@LINE+2]]:10: runtime error: negation
> >> of -2147483648 cannot be represented in type 'int'; cast to an unsigned type
> >> to negate this value to itself
> >> +  // CHECKU-NOT: runtime error
> >>   return -(-0x7fffffff - 1);
> >> }
> >>
> >> Modified: compiler-rt/trunk/lib/ubsan/ubsan_handlers.cc
> >> URL:
> >> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/ubsan/ubsan_handlers.cc?rev=171273&r1=171272&r2=171273&view=diff
> >>
> >> ==============================================================================
> >> --- compiler-rt/trunk/lib/ubsan/ubsan_handlers.cc (original)
> >> +++ compiler-rt/trunk/lib/ubsan/ubsan_handlers.cc Sun Dec 30 20:20:55 2012
> >> @@ -103,10 +103,15 @@
> >>
> >> void __ubsan::__ubsan_handle_negate_overflow(OverflowData *Data,
> >>                                              ValueHandle OldVal) {
> >> -  Diag(Data->Loc, DL_Error,
> >> -       "negation of %0 cannot be represented in type %1; "
> >> -       "cast to an unsigned type to negate this value to itself")
> >> -    << Value(Data->Type, OldVal) << Data->Type;
> >> +  if (Data->Type.isSignedIntegerTy())
> >> +    Diag(Loc, DL_Error,
> >> +         "negation of %0 cannot be represented in type %1; "
> >> +         "cast to an unsigned type to negate this value to itself")
> >> +      << Value(Data->Type, OldVal) << Data->Type;
> >> +  else
> >> +    Diag(Loc, DL_Error,
> >> +         "negation of %0 cannot be represented in type %1")
> >> +      << Value(Data->Type, OldVal) << Data->Type;
> >> }
> >> void __ubsan::__ubsan_handle_negate_overflow_abort(OverflowData *Data,
> >>                                                     ValueHandle OldVal) {
> >>
> >>
> >> _______________________________________________
> >> llvm-commits mailing list
> >> llvm-commits at cs.uiuc.edu
> >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >>
> >>
> >>
> >> _______________________________________________
> >> llvm-commits mailing list
> >> llvm-commits at cs.uiuc.edu
> >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >>
> >
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121231/2ac1cc49/attachment.html>


More information about the llvm-commits mailing list