[LLVMbugs] [Bug 7854] New: User-definable arithmetic overflow handler

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Aug 9 14:13:04 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=7854

           Summary: User-definable arithmetic overflow handler
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: llvmbugs at contacts.eelis.net
                CC: llvmbugs at cs.uiuc.edu


Clang's -ftrapv used to generate calls to __overflow_handler, which the user
could define. I used this functionality in an IRC C++ compilation&execution bot
to give nice verbose diagnostics like "Overflow: 2147483647 + 3" that told
users exactly what was wrong with their snippets.

Unfortunately, this functionality was removed from Clang in revision 110490:

  http://llvm.org/viewvc/llvm-project?view=rev&revision=110490

Now all we get is an opaque trap with no information about what went wrong.

It's really a shame to see useful functionality disappear, hence this
enhancement request.

However, I do /not/ request that the previous -ftrapv behavior be restored
verbatim, because:
1. the "return a replacement value" functionality was awkward and I don't need
it anyway;
2. having -ftrapv be compatible with gcc makes sense.

Instead, I would suggest making user-definable handlers for overflow detection
part of -fcatch-undefined-behavior, with the requirement that the handler must
not return. Indeed, the ability to have user-defined handlers would also be
welcome for the other instances of undefined behavior detected by
-fcatch-undefined-behavior, so that those too can print accurate diagnostics
about what went wrong, but that's another story. :-)

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list