[Bug middle-end/65111] New: null checks on pointers created from references not optimized away
froydnj at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 18 19:29:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65111
Bug ID: 65111
Summary: null checks on pointers created from references not
optimized away
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: froydnj at gcc dot gnu.org
Compiling the C++ code:
#include <new>
void init(int& p)
{
new (&p) float(3.14f);
}
yields (GCC 4.9.1):
_Z4initRi:
testq %rdi, %rdi
je .L1
movl $0x4048f5c3, (%rdi)
.L1:
rep ret
Compiling the equivalent code with clang (3.5 and 3.6-prerelease) yields:
_Z4initRi: # @_Z4initRi
movl $1078523331, (%rdi) # imm = 0x4048F5C3
retq
because clang has determined that &p cannot be null.
More information about the Gcc-bugs
mailing list