public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug sanitizer/59397] New: ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow
@ 2013-12-05 14:44 burnus at gcc dot gnu.org
2013-12-05 14:48 ` [Bug sanitizer/59397] " mpolacek at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: burnus at gcc dot gnu.org @ 2013-12-05 14:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59397
Bug ID: 59397
Summary: ICE in ubsan_encode_value, at ubsan.c:143 for
-fsanitize=signed-integer-overflow
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: sanitizer
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org,
mpolacek at gcc dot gnu.org
Created attachment 31388
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31388&action=edit
C++ test case, run as g++ -fsanitize=signed-integer-overflow
The attached test case fails with:
$ g++ -fsanitize=signed-integer-overflow -S test12.ii
test12.ii: In function 'int s_vectorizeLoop()':
test12.ii:15:29: internal compiler error: in ubsan_encode_value, at ubsan.c:143
dir = three::direction( t + dir );
^
0xbc9f03 ubsan_encode_value(tree_node*)
../../gcc/ubsan.c:143
0xbcb814 ubsan_build_overflow_builtin(tree_code, unsigned int, tree_node*,
tree_node*, tree_node*)
../../gcc/ubsan.c:667
0xa2c020 ubsan_expand_si_overflow_addsub_check(tree_code,
gimple_statement_base*)
../../gcc/internal-fn.c:175
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug sanitizer/59397] ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow
2013-12-05 14:44 [Bug sanitizer/59397] New: ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow burnus at gcc dot gnu.org
@ 2013-12-05 14:48 ` mpolacek at gcc dot gnu.org
2013-12-05 17:00 ` mpolacek at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2013-12-05 14:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59397
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2013-12-05
Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org
Target Milestone|--- |4.9.0
Ever confirmed|0 |1
--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Yeah, the problem is that we don't handle ENUMERAL_TYPEs (nor BOOLEAN_TYPEs).
Will be fixed as a part of PR59333 fix. Thanks for report.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug sanitizer/59397] ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow
2013-12-05 14:44 [Bug sanitizer/59397] New: ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow burnus at gcc dot gnu.org
2013-12-05 14:48 ` [Bug sanitizer/59397] " mpolacek at gcc dot gnu.org
@ 2013-12-05 17:00 ` mpolacek at gcc dot gnu.org
2013-12-05 18:03 ` mpolacek at gcc dot gnu.org
2013-12-05 18:04 ` mpolacek at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2013-12-05 17:00 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59397
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Reduced testcase for c-c++-common:
typedef enum E { A = -1 } e;
int
foo (void)
{
e e = A;
return e + 1;
}
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug sanitizer/59397] ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow
2013-12-05 14:44 [Bug sanitizer/59397] New: ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow burnus at gcc dot gnu.org
2013-12-05 14:48 ` [Bug sanitizer/59397] " mpolacek at gcc dot gnu.org
2013-12-05 17:00 ` mpolacek at gcc dot gnu.org
@ 2013-12-05 18:03 ` mpolacek at gcc dot gnu.org
2013-12-05 18:04 ` mpolacek at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2013-12-05 18:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59397
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Author: mpolacek
Date: Thu Dec 5 18:03:44 2013
New Revision: 205714
URL: http://gcc.gnu.org/viewcvs?rev=205714&root=gcc&view=rev
Log:
PR sanitizer/59333
PR sanitizer/59397
* ubsan.c: Include rtl.h and expr.h.
(ubsan_encode_value): Add new parameter. If expanding, assign
a stack slot for DECL_RTL of the temporary and call expand_assignment.
Handle BOOLEAN_TYPE and ENUMERAL_TYPE.
(ubsan_build_overflow_builtin): Adjust ubsan_encode_value call.
* ubsan.h (ubsan_encode_value): Adjust declaration.
* internal-fn.c (ubsan_expand_si_overflow_addsub_check): Move
ubsan_build_overflow_builtin above expand_normal call. Surround this call
with push_temp_slots and pop_temp_slots.
(ubsan_expand_si_overflow_neg_check): Likewise.
(ubsan_expand_si_overflow_mul_check): Likewise.
testsuite/
* c-c++-common/ubsan/pr59333.c: New test.
* c-c++-common/ubsan/pr59397.c: New test.
Added:
trunk/gcc/testsuite/c-c++-common/ubsan/pr59333.c
trunk/gcc/testsuite/c-c++-common/ubsan/pr59397.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/internal-fn.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/ubsan.c
trunk/gcc/ubsan.h
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug sanitizer/59397] ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow
2013-12-05 14:44 [Bug sanitizer/59397] New: ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow burnus at gcc dot gnu.org
` (2 preceding siblings ...)
2013-12-05 18:03 ` mpolacek at gcc dot gnu.org
@ 2013-12-05 18:04 ` mpolacek at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2013-12-05 18:04 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59397
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-12-05 18:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-05 14:44 [Bug sanitizer/59397] New: ICE in ubsan_encode_value, at ubsan.c:143 for -fsanitize=signed-integer-overflow burnus at gcc dot gnu.org
2013-12-05 14:48 ` [Bug sanitizer/59397] " mpolacek at gcc dot gnu.org
2013-12-05 17:00 ` mpolacek at gcc dot gnu.org
2013-12-05 18:03 ` mpolacek at gcc dot gnu.org
2013-12-05 18:04 ` mpolacek at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).