c++/10112: static data member is not correctly initialised

O.Kullmann@Swansea.ac.uk O.Kullmann@Swansea.ac.uk
Sun Mar 16 20:34:00 GMT 2003


>Number:         10112
>Category:       c++
>Synopsis:       static data member is not correctly initialised
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 16 20:06:02 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Oliver Kullmann
>Release:        gcc 3.2.1
>Organization:
>Environment:
> g++ -v
Reading specs from /compsci/partition1/csoliver/GCC/gcc-3.2.1/lib/gcc-lib/i686-pc-linux-gnu/3.2.1/specs
Configured with: /compsci/partition1/csoliver/GCC/gcc-3.2.1/configure --enable-threads=posix --enable-long-long --prefix=/compsci/partition1/csoliver/GCC/gcc-3.2.1 --with-local-prefix=/compsci/partition1/csoliver/GCC/Include_3.2.1 --enable-languages=c,c++ --disable-nls --enable-shared
Thread model: posix
gcc version 3.2.1
>Description:
When compiling the attached file (56 lines) with

> g++ FehlerInit.cpp

and running it I get

> ./a.out
-33630626
Speicherzugriffsfehler

The first line in main
LitIntOccInt::Var v;
yields a call of the member function
InfoPolicyVector<int>::new_variable()
which prints out the iterator difference between
centre and info_vector.begin(), where
centre is a static data member initialised to
info_vector.begin(),
and thus the result should be 0, but as shown
above, it is "undefined".

The code given seems to be a minimal example
(up to some typedefs) in the sense, that removing
any other stuff (which seems completely unrelated
to the above behaviour) changes the output to
the correct "0".
>How-To-Repeat:
Compile and run.
>Fix:
I have no idea. It seems to me quite serious.

P.S. Perhaps it would be a good idea to somehow
improve the instructions for submitting a bug.
For example I couldn't find an explanation of
what the above abbreviations for the error class
could mean.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="FehlerInit.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="FehlerInit.cpp"

Ly8gT2xpdmVyIEt1bGxtYW5uLCBTd2Fuc2VhLCAxNi4zLjIwMDMKCiNpbmNsdWRlIDx2ZWN0b3I+
CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnRlbXBsYXRlIDxjbGFzcyBMaXRlcmFsTGluaz4Kc3RydWN0
IFZhcmlhYmxlc0FzSW5kaWNlcyB7CiAgdm9pZCBpbnNlcnQoKSB7CiAgICBMaXRlcmFsTGluazo6
bmV3X3ZhcmlhYmxlKCk7CiAgfQogIFZhcmlhYmxlc0FzSW5kaWNlcygpIHsKICAgIGluc2VydCgp
OwogIH0KfTsKCnN0cnVjdCBPY2N1cnJlbmNlcyB7CiAgaW50IHBvczsKfTsKCnRlbXBsYXRlIDx0
eXBlbmFtZSBJbmRleD4Kc3RydWN0IEluZm9Qb2xpY3lWZWN0b3IgewogIHR5cGVkZWYgT2NjdXJy
ZW5jZXMgSW5mb1ZhbHVlVHlwZTsKICB0eXBlZGVmIE9jY3VycmVuY2VzJiBJbmZvUmVmZXJlbmNl
VHlwZTsKICB0eXBlZGVmIHR5cGVuYW1lIHN0ZDo6dmVjdG9yPE9jY3VycmVuY2VzPiBJbmZvVmVj
dG9yVHlwZTsKICBzdGF0aWMgSW5mb1ZlY3RvclR5cGUgaW5mb192ZWN0b3I7CiAgc3RhdGljIHR5
cGVuYW1lIEluZm9WZWN0b3JUeXBlOjppdGVyYXRvciBjZW50cmU7CiAgc3RydWN0IExpbmsgewog
ICAgc3RhdGljIHZvaWQgbmV3X3ZhcmlhYmxlKCkgewogICAgICBzdGQ6OmNlcnIgPDwgY2VudHJl
IC0gaW5mb192ZWN0b3IuYmVnaW4oKSA8PCAiXG4iOwogICAgfQogIH07CiAgT2NjdXJyZW5jZXMm
IGdldF9pbmZvKGludCBpKSBjb25zdCB7CiAgICByZXR1cm4gKihjZW50cmUgKyBpKTsKICB9Cn07
CnRlbXBsYXRlIDx0eXBlbmFtZSBJbmRleD4KdHlwZW5hbWUgSW5mb1BvbGljeVZlY3RvcjxJbmRl
eD46OkluZm9WZWN0b3JUeXBlIEluZm9Qb2xpY3lWZWN0b3I8SW5kZXg+OjppbmZvX3ZlY3Rvcigx
KTsKdGVtcGxhdGUgPHR5cGVuYW1lIEluZGV4Pgp0eXBlbmFtZSBJbmZvUG9saWN5VmVjdG9yPElu
ZGV4Pjo6SW5mb1ZlY3RvclR5cGU6Oml0ZXJhdG9yIEluZm9Qb2xpY3lWZWN0b3I8SW5kZXg+Ojpj
ZW50cmUoaW5mb192ZWN0b3IuYmVnaW4oKSk7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgSW5kZXgsIHRl
bXBsYXRlIDx0eXBlbmFtZSBJbmRleD4gY2xhc3MgSW5mb1BvbGljeUxpdD4Kc3RydWN0IExpdGVy
YWxzQXNJbnRlZ2VycyA6IEluZm9Qb2xpY3lMaXQ8SW5kZXg+IHsKICB0eXBlZGVmIFZhcmlhYmxl
c0FzSW5kaWNlczx0eXBlbmFtZSBJbmZvUG9saWN5TGl0PEluZGV4Pjo6TGluayA+IFZhcjsKICB0
eXBlbmFtZSBJbmZvUG9saWN5TGl0PEluZGV4Pjo6SW5mb1JlZmVyZW5jZVR5cGUgb3BlcmF0b3Ig
KigpIGNvbnN0IHsKICAgIHJldHVybiBnZXRfaW5mbygwKTsKICB9Cn07Cgp0eXBlZGVmIExpdGVy
YWxzQXNJbnRlZ2VyczxpbnQsIEluZm9Qb2xpY3lWZWN0b3I+IExpdEludE9jY0ludDsKCmludCBt
YWluKCkgewogIExpdEludE9jY0ludDo6VmFyIHY7CiAgTGl0SW50T2NjSW50IHk7CiAgKCp5KS5w
b3MgPSA3Owp9Cg==



More information about the Gcc-bugs mailing list