This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c++/5802: spurious "might be used uninitialized" warning with dynamic_cast
- From: poole at troilus dot org
- To: gcc-gnats at gcc dot gnu dot org
- Date: 1 Mar 2002 15:38:08 -0000
- Subject: c++/5802: spurious "might be used uninitialized" warning with dynamic_cast
- Reply-to: poole at troilus dot org
>Number: 5802
>Category: c++
>Synopsis: spurious "might be used uninitialized" warning with dynamic_cast
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: unassigned
>State: open
>Class: rejects-legal
>Submitter-Id: net
>Arrival-Date: Fri Mar 01 07:46:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: poole@troilus.org
>Release: gcc-3.0.4
>Organization:
>Environment:
Debian i686-linux-gnu unstable
>Description:
"g++ -W -O" (both 2.95.4-20011002 and 3.0.4 final) warns:
dyncast.cpp: In function `int test_func(group *)':
dyncast.cpp:22: warning: `class derived * dptr' might be used uninitialized in this function
Intel's C++ compiler accepts the code, and I don't understand why g++ thinks it is used without initialization (or why using an int instead of string argument to get() makes the warning disappear), so I assume it's a g++ bug.
>How-To-Repeat:
compile with "g++ -W -O -c dyncast.cpp"
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="dyncast.cpp"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="dyncast.cpp"
Y2xhc3Mgc3RyaW5nIHsKcHVibGljOgogICAgc3RyaW5nKGNvbnN0IGNoYXIgKnMpIHt9Cn07Cgpj
bGFzcyBiYXNlIHsKcHVibGljOgogICAgYmFzZSogZ2V0KGNvbnN0IHN0cmluZyAmcyk7CiAgICB2
aXJ0dWFsIH5iYXNlKCkge30KfTsKCmNsYXNzIGRlcml2ZWQgOiBwdWJsaWMgYmFzZSB7CiAgICBp
bnQgZm9vOwpwdWJsaWM6CiAgICBkZXJpdmVkKGludCBmb28pIDogZm9vKGZvbykge30KICAgIGlu
dCBiYXooKTsKICAgIHZpcnR1YWwgfmRlcml2ZWQoKSB7fQp9OwoKaW50IHRlc3RfZnVuYyhiYXNl
ICpncnApIHsKICAgIGJhc2UgKm9iajsKICAgIGRlcml2ZWQgKmRwdHI7CgogICAgaWYgKChvYmog
PSBncnAtPmdldChzdHJpbmcoImhlbGxvIikpKQogICAgICAgICYmIChkcHRyID0gZHluYW1pY19j
YXN0PGRlcml2ZWQqPihvYmopKSkgewogICAgICAgIHJldHVybiBkcHRyLT5iYXooKTsKICAgIH0g
ZWxzZSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9Cn0K