* [Bug c++/104426] -fsanitize=undefined causes constexpr failures
2022-02-07 17:46 [Bug c++/104426] New: -fsanitize=undefined causes constexpr failures pdimov at gmail dot com
@ 2022-02-07 21:14 ` redi at gcc dot gnu.org
2022-02-07 21:15 ` redi at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2022-02-07 21:14 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104426
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Maybe a dup of my PR 71962
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/104426] -fsanitize=undefined causes constexpr failures
2022-02-07 17:46 [Bug c++/104426] New: -fsanitize=undefined causes constexpr failures pdimov at gmail dot com
2022-02-07 21:14 ` [Bug c++/104426] " redi at gcc dot gnu.org
@ 2022-02-07 21:15 ` redi at gcc dot gnu.org
2022-02-07 21:17 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2022-02-07 21:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104426
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
And PR 67762
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/104426] -fsanitize=undefined causes constexpr failures
2022-02-07 17:46 [Bug c++/104426] New: -fsanitize=undefined causes constexpr failures pdimov at gmail dot com
2022-02-07 21:14 ` [Bug c++/104426] " redi at gcc dot gnu.org
2022-02-07 21:15 ` redi at gcc dot gnu.org
@ 2022-02-07 21:17 ` jakub at gcc dot gnu.org
2022-02-07 21:29 ` pdimov at gmail dot com
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-02-07 21:17 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104426
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
That's a consequence of -fsanitize=undefined turning on
-fno-delete-null-pointer-checks (it has to, otherwise -fsanitize=null wouldn't
work properly).
And -fno-delete-null-pointer-checks says that variables or functions can be
placed at NULL address.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/104426] -fsanitize=undefined causes constexpr failures
2022-02-07 17:46 [Bug c++/104426] New: -fsanitize=undefined causes constexpr failures pdimov at gmail dot com
` (2 preceding siblings ...)
2022-02-07 21:17 ` jakub at gcc dot gnu.org
@ 2022-02-07 21:29 ` pdimov at gmail dot com
2022-02-08 9:01 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pdimov at gmail dot com @ 2022-02-07 21:29 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104426
--- Comment #4 from Peter Dimov <pdimov at gmail dot com> ---
FWIW, I agree with everything Martin Sebor says in PR71962.
-fallow-address-zero is an entirely separate feature, and shouldn't be implied
by -fsanitize=undefined.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/104426] -fsanitize=undefined causes constexpr failures
2022-02-07 17:46 [Bug c++/104426] New: -fsanitize=undefined causes constexpr failures pdimov at gmail dot com
` (3 preceding siblings ...)
2022-02-07 21:29 ` pdimov at gmail dot com
@ 2022-02-08 9:01 ` rguenth at gcc dot gnu.org
2022-02-08 10:52 ` jakub at gcc dot gnu.org
2024-05-15 9:08 ` redi at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-02-08 9:01 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104426
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #3)
> That's a consequence of -fsanitize=undefined turning on
> -fno-delete-null-pointer-checks (it has to, otherwise -fsanitize=null
> wouldn't work properly).
> And -fno-delete-null-pointer-checks says that variables or functions can be
> placed at NULL address.
Note that's "historical" mostly, the correct way to check whether objects can
be at NULL address is the corresponding address-space hook. Of course that
leaves us with no way for the user to override what the target thinks (unless
the target provides its own way to do that).
IMHO we can simply take away this option from the user, it was a mistake to
document it that way when it had this effect due to lack of a better way.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/104426] -fsanitize=undefined causes constexpr failures
2022-02-07 17:46 [Bug c++/104426] New: -fsanitize=undefined causes constexpr failures pdimov at gmail dot com
` (4 preceding siblings ...)
2022-02-08 9:01 ` rguenth at gcc dot gnu.org
@ 2022-02-08 10:52 ` jakub at gcc dot gnu.org
2024-05-15 9:08 ` redi at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-02-08 10:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104426
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 52369
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52369&action=edit
gcc12-pr104426.patch
Untested fix.
This stops the implied setting of -fno-delete-null-pointer-checks for
sanitizers and instead introduces an inline function that decides if null
pointer checks should be done or not. In initializers and C++ manifestly
constant expressions only the -f{,no-}delete-null-pointer-checks from command
line or implied from some DSP targets will be honored (and separate question is
if automatic vars can be assumed to be non-NULL even on those targets), while
outside of those we keep what we've been doing before, i.e. UBSan disables
those optimizations so that -fsanitize=null etc. can continue working
correctly.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/104426] -fsanitize=undefined causes constexpr failures
2022-02-07 17:46 [Bug c++/104426] New: -fsanitize=undefined causes constexpr failures pdimov at gmail dot com
` (5 preceding siblings ...)
2022-02-08 10:52 ` jakub at gcc dot gnu.org
@ 2024-05-15 9:08 ` redi at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2024-05-15 9:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104426
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2024-05-15
Ever confirmed|0 |1
^ permalink raw reply [flat|nested] 8+ messages in thread