public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug sanitizer/115156] New: [14 Regression] passing zero to __builtin_clzl() check missing
@ 2024-05-19  8:47 bic60176 at gmail dot com
  2024-05-19  9:47 ` [Bug sanitizer/115156] " pinskia at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: bic60176 at gmail dot com @ 2024-05-19  8:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115156

            Bug ID: 115156
           Summary: [14 Regression] passing zero to __builtin_clzl() check
                    missing
           Product: gcc
           Version: 14.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bic60176 at gmail dot com
                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
  Target Milestone: ---

OS: Ubuntu 22.04.3 LTS

UBSAN missed checking if zero is passed to __builtin_clzl() when compiling with
gcc-14.1.0.

testcase:
```
#include<stdint.h>

void main() {
  int32_t b = 0;
  (__builtin_clzl(b), 3) && b;
  // __builtin_clzl(b); /* gcc-14 can detect this one */
}
```

$ ../compiler-builds/gcc-14.1.0_build/bin/gcc -fsanitize=undefined -g -lgcc_s
testcase.c -o exec

$ ./exec 2>exec.err

$ cat exec.err

$ ../compiler-builds/gcc-13.2.0_build/bin/gcc -fsanitize=undefined -g -lgcc_s 
testcase.c -o exec

$ ./exec 2>exec.err

$ cat exec.err
testcase.c:5:4: runtime error: passing zero to clz(), which is not a valid
argument

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug sanitizer/115156] [14 Regression] passing zero to __builtin_clzl() check missing
  2024-05-19  8:47 [Bug sanitizer/115156] New: [14 Regression] passing zero to __builtin_clzl() check missing bic60176 at gmail dot com
@ 2024-05-19  9:47 ` pinskia at gcc dot gnu.org
  2024-05-19  9:47 ` [Bug sanitizer/115156] [14/15 " pinskia at gcc dot gnu.org
  2024-05-19 15:14 ` jakub at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-05-19  9:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115156

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I am not 100% sure this if this case matters as the return value of
__builtin_clzl is very much unused.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug sanitizer/115156] [14/15 Regression] passing zero to __builtin_clzl() check missing
  2024-05-19  8:47 [Bug sanitizer/115156] New: [14 Regression] passing zero to __builtin_clzl() check missing bic60176 at gmail dot com
  2024-05-19  9:47 ` [Bug sanitizer/115156] " pinskia at gcc dot gnu.org
@ 2024-05-19  9:47 ` pinskia at gcc dot gnu.org
  2024-05-19 15:14 ` jakub at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-05-19  9:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115156

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |14.2
            Summary|[14 Regression] passing     |[14/15 Regression] passing
                   |zero to __builtin_clzl()    |zero to __builtin_clzl()
                   |check missing               |check missing

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug sanitizer/115156] [14/15 Regression] passing zero to __builtin_clzl() check missing
  2024-05-19  8:47 [Bug sanitizer/115156] New: [14 Regression] passing zero to __builtin_clzl() check missing bic60176 at gmail dot com
  2024-05-19  9:47 ` [Bug sanitizer/115156] " pinskia at gcc dot gnu.org
  2024-05-19  9:47 ` [Bug sanitizer/115156] [14/15 " pinskia at gcc dot gnu.org
@ 2024-05-19 15:14 ` jakub at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: jakub at gcc dot gnu.org @ 2024-05-19 15:14 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115156

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started with r14-1880-g827e208fa64771f15fc8e53970a2297e637277b5
Note, the functions in question are const, so they can be dead code eliminated
at any time, and the UBSAN instrumentation in this case is done only in the
ubsan pass, so if it gets folded away before that it won't be instrumented.
At -O1 or higher it would be a clear non-bug, with optimizations sanitizers
often diagnose only UB in code that isn't dead, in this case a question is why
we are folding this at -O0.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-05-19 15:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-19  8:47 [Bug sanitizer/115156] New: [14 Regression] passing zero to __builtin_clzl() check missing bic60176 at gmail dot com
2024-05-19  9:47 ` [Bug sanitizer/115156] " pinskia at gcc dot gnu.org
2024-05-19  9:47 ` [Bug sanitizer/115156] [14/15 " pinskia at gcc dot gnu.org
2024-05-19 15:14 ` jakub 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).