c++: Ignore __sanitizer_ptr_{sub,cmp} builtin calls during constant expression evalua...
authorJakub Jelinek <jakub@redhat.com>
Tue, 22 Sep 2020 19:06:32 +0000 (21:06 +0200)
committerJakub Jelinek <jakub@redhat.com>
Tue, 22 Sep 2020 19:08:02 +0000 (21:08 +0200)
commitbc13106e0414b86af8f6878e7681e6a959921b9e
tree0d5cd7575d2446eb14fd507d7791cf9f9cbbe234
parent49ff88bd0d8a36a9e903f01ce05685cfe07dee5d
c++: Ignore __sanitizer_ptr_{sub,cmp} builtin calls during constant expression evaluation [PR97145]

These two builtin calls are added already during parsing before pointer
subtractions or comparisons, normally they perform runtime verification
of whether the pointers point to the same object or different objects,
but during constant expressione valuation we don't really need those
builtins for anything.

2020-09-22  Jakub Jelinek  <jakub@redhat.com>

PR c++/97145
* constexpr.c (cxx_eval_builtin_function_call): Return void_node for
calls to __sanitize_ptr_{sub,cmp} builtins.

* g++.dg/asan/pr97145.C: New test.
gcc/cp/constexpr.c
gcc/testsuite/g++.dg/asan/pr97145.C [new file with mode: 0644]