[Bug debug/95047] Wrong debug information for ternary operator at O0

2020-05-11 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95047 --- Comment #3 from Andrew Pinski --- That is because when GCC does for -Og: [t666.c:6:12] _1 = left_6(D) >= 0; [t666.c:6:34] _2 = right_7(D) >= 0; [t666.c:6:17] _3 = _1 & _2; [t666.c:7:7] if (_3 != 0) This "optimization" happens at

[Bug debug/95047] Wrong debug information for ternary operator at O0

2020-05-11 Thread massarelli at diag dot uniroma1.it
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95047 --- Comment #2 from Luca Massarelli --- Ok, so it seems that there is an inconsistency with -Og: $ gcc -Og -g -o opt a.c $ lldb opt * thread #1, name = 'opt', stop reason = breakpoint 1.1 frame #0: 0x004004bb opt`main at a.c:13:9

[Bug debug/95047] Wrong debug information for ternary operator at O0

2020-05-11 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95047 --- Comment #1 from Andrew Pinski --- GCC puts the line information as the line/collumn as the ':' part of the ternary opertator. : [t666.c:7:7] if (left_3(D) >= 0) goto ; [INV] else goto ; [INV] : [t666.c:6:17] if