[Bug c++/82877] New: negative array index accepted in a pointer difference expression in constexpr context
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 7 03:46:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82877
Bug ID: 82877
Summary: negative array index accepted in a pointer difference
expression in constexpr context
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gcc dot gnu.org
Target Milestone: ---
The following invalid program is required to be diagnosed because it has
undefined behavior due to the negative array index. However, it is silently
accepted by G++. It is rejected with an error by Clang 5.0, Intel ICC 17, and
Visual C++.
constexpr int f ()
{
struct S { int a[1]; };
S s = { 0 };
return &s.a[0] - &s.a[-1]; // undefined, should be rejected
}
constexpr int i = f ();
More information about the Gcc-bugs
mailing list