[Bug c++/68711] New: [5 regression] SEGV on an invalid offsetof of a member of a virtual base
msebor at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Dec 5 01:35:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68711
Bug ID: 68711
Summary: [5 regression] SEGV on an invalid offsetof of a member
of a virtual base
Product: gcc
Version: 6.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: ---
Current trunk (6.0.0 20151205) silently accepts the invalid program below which
then crashes at runtime. This was observed on x86_64.
$ cat x.cpp && /build/gcc-trunk-svn/gcc/xgcc -B /build/gcc-trunk-svn/gcc -Wall
-xc++ x.cpp && ./a.out
struct A { int i; };
struct B: virtual A { };
int main ()
{
return __builtin_offsetof (B, i);
}
Segmentation fault (core dumped)
GCC 5.1 and Clang reject the program with an error similar to the one below.
So does GCC 6.0.0 20151125 on powerpc64le. I haven't yet looked to see if it's
a recent problem or if it's target-specific.
$ ~/bin/gcc-5.1.0/bin/g++ x.cppx.cpp: In function ‘int main()’:
x.cpp:9:35: error: invalid access to non-static data member ‘A::i’ in virtual
base of NULL object
return __builtin_offsetof (B, i);
^
More information about the Gcc-bugs
mailing list