[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2023-05-15 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2021-09-06 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2021-09-06 Assignee|unassigned

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2021-08-09 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-10 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 --- Comment #10 from Martin Sebor --- Yes, I've also come to realize that the surprising signed char range is a red herring since the abort in the following test case is also not optimized away. void f (_Bool i) { char d [3]; const char *p

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-10 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 --- Comment #9 from Marc Glisse --- I don't see what "signed" has to do with it. void f (unsigned char i) { char d [1260]; const char *p = &d[130]; p += i; if (p < d + 2 || d + 757 < p) __builtin_abort (); } We don't optimize thi

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-10 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 --- Comment #8 from Andrew Pinski --- (In reply to Martin Sebor from comment #7) > Here's what I see in GDB after get_range_info returns to update_value_range: > > (gdb) p rtype > $39 = VR_ANTI_RANGE > (gdb) p min > $40 = { = {val = {128, 180617

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-10 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 --- Comment #7 from Martin Sebor --- Here's what I see in GDB after get_range_info returns to update_value_range: (gdb) p rtype $39 = VR_ANTI_RANGE (gdb) p min $40 = { = {val = {128, 18061790, 140737235530016}, len = 1, precision = 64}, static i

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-10 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 --- Comment #6 from Andrew Pinski --- (In reply to Martin Sebor from comment #5) > My other point (one somewhat related to bug 77898) is that it's confusing to > represent the VR_RANGE [-128, 127] of the signed char variable as a > VR_ANTI_RANGE

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-10 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 Martin Sebor changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED Resolution|INVALID

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-10 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|---

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-07 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 --- Comment #3 from Martin Sebor --- The offset is this in plus_stmt_object_size() in tree-object-size.c: unit size align 64 symtab 0 alias set -1 canonical type 0x70da41f8 precision 64 min max > static visited de

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-07 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 --- Comment #2 from Andrew Pinski --- So to fix this in reality is to change how POINTER_PLUS_EXPR takes an unsigned integer to be a signed integer. But this will take many extra issues and need to be done though out the compiler.

[Bug tree-optimization/77899] incorrect VR_RANGE for a signed char function argument

2016-10-07 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77899 --- Comment #1 from Andrew Pinski --- This is the complex part because size_type is unsigned so the range converting from signed [-127, 128] to unsigned is ~[128, 18446744073709551487]