From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9417 invoked by alias); 22 Jan 2002 14:46:05 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 9382 invoked by uid 71); 22 Jan 2002 14:46:03 -0000 Resent-Date: 22 Jan 2002 14:46:02 -0000 Resent-Message-ID: <20020122144602.9381.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, kgardas@iol.cz Received:(qmail 6815 invoked by uid 61); 22 Jan 2002 14:38:43 -0000 Message-Id:<20020122143843.6814.qmail@sources.redhat.com> Date: Tue, 22 Jan 2002 06:46:00 -0000 From: kgardas@iol.cz Reply-To: kgardas@iol.cz To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c++/5453: Compiled program crash - inheritance/template/friend class problem X-SW-Source: 2002-01/txt/msg00769.txt.bz2 List-Id: >Number: 5453 >Category: c++ >Synopsis: Compiled program crash - inheritance/template/friend class problem >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Jan 22 06:46:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: kgardas@iol.cz >Release: gcc version 3.1 20020121 (experimental) >Organization: >Environment: Debian GNU/Linux 3.0 on x86 machine >Description: I've compiled attached program with: thinkpad:~/mujprog/c-cc/tests/gcc31/crash-out-types$ c++ -v -o crash2 crash2.cc Reading specs from /home/karel/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs Configured with: ./../gcc3.1/configure --prefix=/home/karel/usr/local --enable-shared --enable-threads --enable-languages=c++ Thread model: posix gcc version 3.1 20020121 (experimental) /home/karel/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem=posix -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D_GNU_SOURCE -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ crash2.cc -D__GNUG__=3 -D__DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -quiet -dumpbase crash2.cc -version -o /tmp/ccddBPcT.s GNU CPP version 3.1 20020121 (experimental) (cpplib) (i386 Linux/ELF) GNU C++ version 3.1 20020121 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 3.1 20020121 (experimental). ignoring nonexistent directory "/home/karel/usr/local/i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /home/karel/usr/local/include/g++-v3 /home/karel/usr/local/include/g++-v3/i686-pc-linux-gnu /home/karel/usr/local/include/g++-v3/backward /usr/local/include /home/karel/usr/local/include /home/karel/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/include /usr/include End of search list. as -V -Qy -o /tmp/ccozjyyR.o /tmp/ccddBPcT.s GNU assembler version 2.11.92.0.12.3 (i386-linux) using BFD version 2.11.92.0.12.3 20011121 Debian/GNU Linux /home/karel/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o crash2 /usr/lib/crt1.o /usr/lib/crti.o /home/karel/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/crtbegin.o -L/home/karel/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1 -L/home/karel/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../.. /tmp/ccozjyyR.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /home/karel/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/crtend.o /usr/lib/crtn.o Then I started it and it crashed! thinkpad:~/mujprog/c-cc/tests/gcc31/crash-out-types$ ./crash2 RefCntObject::RefCntObject() CORBA::Object::Object() B::B() B_impl::B_impl() Segmentation fault thinkpad:~/mujprog/c-cc/tests/gcc31/crash-out-types$ This code works well with my standard gcc 2.95.4 (Debian prerelease) - the output is below: ReaRefCntObject::RefCntObject() CORBA::Object::Object() B::B() B_impl::B_impl() RefCntObject::RefCntObject() CORBA::Object::Object() A::A() A_impl::A_impl() RefCntObject::_deref() <- 1 RefCntObject::_deref() -> 0 A_impl::~A_impl() A::~A() CORBA::Object::~Object() RefCntObject::~RefCntObject() _refcnt(): 0 RefCntObject::_deref() <- 1 RefCntObject::_deref() -> 0 B_impl::~B_impl() B::~B() CORBA::Object::~Object() RefCntObject::~RefCntObject() _refcnt(): 0 thinkpad:~/mujprog/c-cc/tests/gcc31/crash-out-types$ Cheers, Karel >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: text/x-c++src; name="crash2.cc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="crash2.cc" CiNpbmNsdWRlIDxhc3NlcnQuaD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNl IHN0ZDsKCm5hbWVzcGFjZSBDT1JCQQp7CiAgICBjbGFzcyBSZWZDbnRPYmplY3QKICAgIHsKCWxv bmcgX01fcmVmY250OwogICAgcHVibGljOgoJUmVmQ250T2JqZWN0KCkKCSAgICA6IF9NX3JlZmNu dCgxKQoJewoJICAgIGNlcnIgPDwgIlJlZkNudE9iamVjdDo6UmVmQ250T2JqZWN0KCkiIDw8IGVu ZGw7Cgl9Cgl2aXJ0dWFsIH5SZWZDbnRPYmplY3QoKQoJewoJICAgIGNlcnIgPDwgIlJlZkNudE9i amVjdDo6flJlZkNudE9iamVjdCgpIiA8PCBlbmRsOwoJICAgIGNlcnIgPDwgIl9yZWZjbnQoKTog IiA8PCBfTV9yZWZjbnQgPDwgZW5kbDsKCX0KCgl2b2lkCglfcmVmKCkKCXsgX01fcmVmY250Kys7 IH0KCQoJYm9vbAoJX2RlcmVmKCkKCXsgCgkgICAgY2VyciA8PCAiUmVmQ250T2JqZWN0OjpfZGVy ZWYoKSA8LSAiIDw8IHRoaXMtPl9yZWZjbnQoKSA8PCBlbmRsOwoJICAgIF9NX3JlZmNudC0tOwoJ ICAgIGNlcnIgPDwgIlJlZkNudE9iamVjdDo6X2RlcmVmKCkgLT4gIiA8PCB0aGlzLT5fcmVmY250 KCkgPDwgZW5kbDsKCSAgICByZXR1cm4gX01fcmVmY250IDw9IDA7Cgl9CgoJbG9uZwoJX3JlZmNu dCgpCgl7IHJldHVybiBfTV9yZWZjbnQ7IH0KCglzdGF0aWMgUmVmQ250T2JqZWN0KgoJX25pbCgp Cgl7IHJldHVybiAwOyB9CgoJc3RhdGljIFJlZkNudE9iamVjdCoKCV9kdXBsaWNhdGUoUmVmQ250 T2JqZWN0KiBfX29iaikKCXsKCSAgICBpZiAoX19vYmopCgkJX19vYmotPl9yZWYoKTsKCSAgICBy ZXR1cm4gX19vYmo7Cgl9CiAgICB9OwoKICAgIHN0YXRpYyBpbmxpbmUgdm9pZCByZWxlYXNlIChS ZWZDbnRPYmplY3QqIF9fb2JqKQogICAgewoJaWYgKF9fb2JqICYmIF9fb2JqLT5fZGVyZWYoKSkK CSAgICBkZWxldGUgX19vYmo7CiAgICB9CgogICAgc3RhdGljIGlubGluZSBib29sIGlzX25pbCAo UmVmQ250T2JqZWN0KiBfX29iaikKICAgIHsKCXJldHVybiAhX19vYmo7CiAgICB9Cgp9OwoKdGVt cGxhdGU8Y2xhc3MgVD4gY2xhc3MgT2JqT3V0OwoKdGVtcGxhdGU8Y2xhc3MgVD4KY2xhc3MgT2Jq VmFyCnsKCiAgICBmcmllbmQgY2xhc3MgT2JqT3V0PFQ+OwogICAgCnByaXZhdGU6CiAgVCogX3B0 cjsKCiAgc3RhdGljIFQqIG5pbCgpCiAgewogICAgICByZXR1cm4gMDsKICB9CgpwdWJsaWM6CiAg ICBzdGF0aWMgVCoKICAgIGR1cGxpY2F0ZSAoVCogX190KQogICAgeyByZXR1cm4gVDo6X2R1cGxp Y2F0ZShfX3QpOyB9CgogICAgc3RhdGljIHZvaWQKICAgIHJlbGVhc2UgKFQqIF9fdCkKICAgIHsg Q09SQkE6OnJlbGVhc2UoX190KTsgfQoKcHJpdmF0ZToKICAgIHZvaWQKICAgIGZyZWUoKQogICAg ewoJdGhpcy0+cmVsZWFzZShfcHRyKTsKCV9wdHIgPSBuaWwoKTsKICAgIH0KCiAgICB2b2lkCiAg ICByZXNldChUKiBfX3B0cikKICAgIHsKCXRoaXMtPmZyZWUoKTsKCV9wdHIgPSBfX3B0cjsKICAg IH0KICAgIApwdWJsaWM6CiAgICBPYmpWYXIoKQogICAgewoJX3B0ciA9IG5pbCgpOwogICAgfQog ICAgT2JqVmFyKFQqIHB0cikKICAgIHsKCV9wdHIgPSBwdHI7CiAgICB9CiAgICBPYmpWYXIoIGNv bnN0IE9ialZhcjxUPiYgdmFyICkKICAgIHsKCV9wdHIgPSB0aGlzLT5kdXBsaWNhdGUgKHZhci5f cHRyKTsKICAgIH0KICAgIH5PYmpWYXIoKQogICAgewoJdGhpcy0+ZnJlZSgpOwogICAgfQogICAg T2JqVmFyPFQ+JiBvcGVyYXRvcj0oIGNvbnN0IE9ialZhcjxUPiAmdmFyICkKICAgIHsKCWlmICh0 aGlzICE9ICZ2YXIpIHsKCSAgICB0aGlzLT5mcmVlKCk7CgkgICAgX3B0ciA9IHRoaXMtPmR1cGxp Y2F0ZSggdmFyLl9wdHIgKTsKCX0KCXJldHVybiAqdGhpczsKICAgIH0KICAgIE9ialZhcjxUPiYg b3BlcmF0b3I9KCBUKiBwdHIgKQogICAgewoJaWYgKF9wdHIgIT0gcHRyKQoJICAgIHRoaXMtPnJl c2V0KCBwdHIgKTsKCXJldHVybiAqdGhpczsKICAgIH0KLy8gZysrIGNvbnN0IG92ZXJsb2FkIHBy b2JsZW0KI2lmZGVmIEhBVkVfQ09OU1RfT1ZFUkxPQUQKICAgIG9wZXJhdG9yIFQqKCkgY29uc3QK ICAgIHsKCXJldHVybiBfcHRyOwogICAgfQojZW5kaWYKICAgIG9wZXJhdG9yIFQqICgpCiAgICB7 CglyZXR1cm4gX3B0cjsKICAgIH0KICAgIFQqIG9wZXJhdG9yLT4oKSBjb25zdAogICAgewoJYXNz ZXJ0IChfcHRyKTsKCXJldHVybiBfcHRyOwogICAgfQoKICAgIFQqIGluKCkgY29uc3QKICAgIHsK CXJldHVybiBfcHRyOwogICAgfQogIAogICAgVComIGlub3V0KCkKICAgIHsKCXJldHVybiBfcHRy OwogICAgfQogIAogICAgVComIG91dCgpCiAgICB7Cgl0aGlzLT5mcmVlKCk7CglyZXR1cm4gX3B0 cjsKICAgIH0KICAgIAogICAgVComIF9mb3JfZGVtYXJzaGFsKCkKICAgIHsKCXJldHVybiBvdXQo KTsKICAgIH0KICAKICAgIFQqIF9yZXRuKCkKICAgIHsKCVQgKl9wID0gX3B0cjsKCV9wdHIgPSB0 aGlzLT5uaWwoKTsKCXJldHVybiBfcDsKICAgIH0KfTsKCgovKgogKiBUZW1wbGF0ZSB0byBnZW5l cmF0ZSBfb3V0IHR5cGVzIGZvciBvYmplY3QgcmVmZXJlbmNlcwogKi8KdGVtcGxhdGU8Y2xhc3Mg VD4KY2xhc3MgT2JqT3V0CnsKcHJpdmF0ZToKICAgIFQqJiBfcHRyOwogICAgCnB1YmxpYzoKICAg IE9iak91dCAoVComIHApCgk6IF9wdHIgKHApCiAgICB7CglfcHRyID0gVDo6X25pbCgpOwogICAg fQoKICAgIE9iak91dCAoT2JqVmFyPFQ+JiBwKQogICAgOiBfcHRyIChwLl9wdHIpCiAgICB7CglD T1JCQTo6cmVsZWFzZSAoX3B0cik7CglfcHRyID0gVDo6X25pbCgpOwogICAgfQoKICAgIE9iak91 dCAoY29uc3QgT2JqT3V0PFQ+JiBwKQoJOiBfcHRyIChwLl9wdHIpCiAgICB7CiAgICB9CiAgICBP YmpPdXQ8VD4mIG9wZXJhdG9yPSAoY29uc3QgT2JqT3V0PFQ+JiBwKQogICAgewoJX3B0ciA9IHAu X3B0cjsKCXJldHVybiAqdGhpczsKICAgIH0KICAgIE9iak91dDxUPiYgb3BlcmF0b3I9IChjb25z dCBPYmpWYXI8VD4mIHApCiAgICB7CglfcHRyID0gVDo6X2R1cGxpY2F0ZSAocC5fcHRyKTsKCXJl dHVybiAqdGhpczsKICAgIH0KICAgIE9iak91dDxUPiYgb3BlcmF0b3I9IChUKiBwKQogICAgewoJ X3B0ciA9IHA7CglyZXR1cm4gKnRoaXM7CiAgICB9CiAgICBvcGVyYXRvciBUJiAoKQogICAgewoJ cmV0dXJuICpfcHRyOwogICAgfQogICAgb3BlcmF0b3IgVComICgpCiAgICB7CglyZXR1cm4gX3B0 cjsKICAgIH0KICAgIFQqIG9wZXJhdG9yLT4gKCkKICAgIHsKCWFzc2VydCAoX3B0cik7CglyZXR1 cm4gX3B0cjsKICAgIH0KICAgIFQqJiBwdHIgKCkKICAgIHsKCXJldHVybiBfcHRyOwogICAgfQp9 OwoKCm5hbWVzcGFjZSBDT1JCQQp7CgogICAgY2xhc3MgT2JqZWN0IDogcHVibGljIFJlZkNudE9i amVjdAogICAgewogICAgcHVibGljOgoJdmlydHVhbCB+T2JqZWN0KCkKCXsKCSAgICBjZXJyIDw8 ICJDT1JCQTo6T2JqZWN0Ojp+T2JqZWN0KCkiIDw8IGVuZGw7Cgl9CglPYmplY3QoKQoJewoJICAg IGNlcnIgPDwgIkNPUkJBOjpPYmplY3Q6Ok9iamVjdCgpIiA8PCBlbmRsOwoJfQogICAgfTsKCiAg ICB0eXBlZGVmIE9iamVjdCogT2JqZWN0X3B0cjsKICAgIHR5cGVkZWYgT2JqVmFyPE9iamVjdD4g T2JqZWN0X3ZhcjsKICAgIHR5cGVkZWYgT2JqT3V0PE9iamVjdD4gT2JqZWN0X291dDsKCn07CgoK Y2xhc3MgQTsKdHlwZWRlZiBBICpBX3B0cjsKdHlwZWRlZiBBX3B0ciBBUmVmOwp0eXBlZGVmIE9i alZhcjxBPiBBX3ZhcjsKdHlwZWRlZiBPYmpPdXQ8QT4gQV9vdXQ7CgpjbGFzcyBCOwp0eXBlZGVm IEIgKkJfcHRyOwp0eXBlZGVmIEJfcHRyIEJSZWY7CnR5cGVkZWYgT2JqVmFyPEI+IEJfdmFyOwp0 eXBlZGVmIE9iak91dDxCPiBCX291dDsKCmNsYXNzIEEgOiB2aXJ0dWFsIHB1YmxpYyBDT1JCQTo6 T2JqZWN0CnsKcHVibGljOgogICAgdmlydHVhbCB+QSgpCiAgICB7CgljZXJyIDw8ICJBOjp+QSgp IiA8PCBlbmRsOwogICAgfQoKICAgIEEoKQogICAgewoJY2VyciA8PCAiQTo6QSgpIiA8PCBlbmRs OwogICAgfQoKICAgIHN0YXRpYyBBX3B0cgogICAgX2R1cGxpY2F0ZShBX3B0ciBfX29iaikKICAg IHsgCglDT1JCQTo6T2JqZWN0OjpfZHVwbGljYXRlKF9fb2JqKTsKCXJldHVybiBfX29iajsKICAg IH0KCiAgICBzdGF0aWMgQV9wdHIKICAgIF9uaWwoKQogICAgeyByZXR1cm4gMDsgfQp9OwoKY2xh c3MgQiA6IHZpcnR1YWwgcHVibGljIENPUkJBOjpPYmplY3QKewpwdWJsaWM6CiAgICB2aXJ0dWFs IH5CKCkKICAgIHsKCWNlcnIgPDwgIkI6On5CKCkiIDw8IGVuZGw7CiAgICB9CgogICAgQigpCiAg ICB7CgljZXJyIDw8ICJCOjpCKCkiIDw8IGVuZGw7CiAgICB9CgogICAgc3RhdGljIEJfcHRyCiAg ICBfZHVwbGljYXRlKEJfcHRyIF9fb2JqKQogICAgeyAKCUNPUkJBOjpPYmplY3Q6Ol9kdXBsaWNh dGUoX19vYmopOwoJcmV0dXJuIF9fb2JqOwogICAgfQoKICAgIHN0YXRpYyBCX3B0cgogICAgX25p bCgpCiAgICB7IHJldHVybiAwOyB9CgogICAgdmlydHVhbCB2b2lkCiAgICBnZXRfYShBX291dCB2 YWx1ZSkgPSAwOwp9OwoKY2xhc3MgQV9pbXBsIDogdmlydHVhbCBwdWJsaWMgQQp7CnB1YmxpYzoK ICAgIHZpcnR1YWwgfkFfaW1wbCgpCiAgICB7CgljZXJyIDw8ICJBX2ltcGw6On5BX2ltcGwoKSIg PDwgZW5kbDsKICAgIH0KICAgIEFfaW1wbCgpCiAgICB7CgljZXJyIDw8ICJBX2ltcGw6OkFfaW1w bCgpIiA8PCBlbmRsOwogICAgfQp9OwoKY2xhc3MgQl9pbXBsIDogdmlydHVhbCBwdWJsaWMgQgp7 CnB1YmxpYzoKICAgIEJfaW1wbCgpCiAgICB7CgljZXJyIDw8ICJCX2ltcGw6OkJfaW1wbCgpIiA8 PCBlbmRsOwogICAgfQoKICAgIHZpcnR1YWwgfkJfaW1wbCgpCiAgICB7CgljZXJyIDw8ICJCX2lt cGw6On5CX2ltcGwoKSIgPDwgZW5kbDsKICAgIH0KCiAgICB2b2lkCiAgICBnZXRfYShBX291dCB2 YWx1ZSkKICAgIHsgdmFsdWUgPSBuZXcgQV9pbXBsOyB9Cn07CgppbnQKbWFpbigpCnsKICAgIEJf dmFyIF9fYiA9IG5ldyBCX2ltcGw7CiAgICAvL0JfcHRyIF9fYiA9IG5ldyBCX2ltcGw7CiAgICAv L2NlcnIgPDwgX19iLT5fcmVmY250KCkgPDwgZW5kbDsKICAgIC8vQ09SQkE6OnJlbGVhc2UoX19i KTsKICAgIEFfdmFyIF9fYTsKICAgIF9fYi0+Z2V0X2EoX19hKTsKICAgIHJldHVybiAwOwp9OwoK