From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas.Krakowczyk@fujitsu-siemens.com To: gcc-gnats@gcc.gnu.org Cc: Erwin.Unruh@fujitsu-siemens.com, Jochen.Canisius@fujitsu-siemens.com Subject: c++/3256: wrong code with throw / catch and optimization Date: Tue, 19 Jun 2001 05:36:00 -0000 Message-id: <20010619123412.6380.qmail@sourceware.cygnus.com> X-SW-Source: 2001-06/msg00778.html List-Id: >Number: 3256 >Category: c++ >Synopsis: wrong code with throw / catch and optimization >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Jun 19 05:36:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Andreas Krakowczyk >Release: gcc-3.0 >Organization: >Environment: sparc-sun-solaris2.8 >Description: Program fails with gcc-3.0 and option '-O' runs o.k. without optimization runs o.k. with gcc-2.95.3 even with optimization '-O' >How-To-Repeat: g++ -O test_5.c && ./a.out >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/x-unknown-content-type-c_auto_file; name="test_5.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test_5.c" Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgICBDT1BZUklHSFQgKEMpIFNJRU1FTlMg TklYRE9SRiBJTkZPUk1BVElPTlNTWVNURU1FIEFHIDE5OTYgICAgICovCi8qICAgICAgICAgICAg ICAgICAgQUxMIFJJR0hUUyBSRVNFUlZFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogICAgQ09OVEVOVFM6 ICAgICBtYWluIHByb2dyYW0gZm9yIHRlc3RpbmcgaW50ZXJhY3Rpb24gYmV0d2VlbiAgICAqLwov KiAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbi1oYW5kbGluZyBhbmQgb3B0aW1pemF0aW9uICAg ICAgICAgICAgICovCi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2RlZmluZSBGQUxTRSAw CiNkZWZpbmUgVFJVRSAgMQogCmJvb2wgIG9rOwoKdm9pZCBkb190aHJvdyAodm9pZCk7Cgpib29s IHRlc3RfY2FzZTQ4IChpbnQgemVybyA9IDAsIGludCBvbmUgPSAxKTsKYm9vbCB0ZXN0X2Nhc2U1 MCAoaW50IHplcm8gPSAwLCBpbnQgb25lID0gMSk7CgpleHRlcm4gIkMiIHsKICAgIGV4dGVybiBp bnQgcHJpbnRmKGNvbnN0IGNoYXIgKiwgLi4uKTsKfQoKaW50IG1haW4gKGludCBhcmdjLCBjaGFy ICphcmd2IFtdKQp7CiAgCiAgIGludCByZXQgPSAwOwoKLy8gQ2xvbmluZwogIAogICBpZiAoISB0 ZXN0X2Nhc2U0OCAoKSkgICAgICB7IHByaW50ZiAoImNhc2U0OCBmYWlsZWRcbiIpOyAgcmV0Kys7 IH0KICAgaWYgKCEgdGVzdF9jYXNlNDggKDAsMCkpICAgeyBwcmludGYgKCJjYXNlNDgqIGZhaWxl ZFxuIik7IHJldCsrOyB9CiAgCi8vIEZ1c2lvbgogIAogICBpZiAoISB0ZXN0X2Nhc2U1MCAoMCww KSkgICB7IHByaW50ZiAoImNhc2U1MCogZmFpbGVkXG4iKTsgcmV0Kys7IH0KCiAgIGlmICghcmV0 KSBwcmludGYgKCIlLTI0cyBwYXNzZWRcbiIsIGFyZ3ZbMF0pOwogICBlbHNlICAgICAgcHJpbnRm ICgiJS0yNHMgRkFJTEVEXG4iLCBhcmd2WzBdKTsKICAgcmV0dXJuIHJldDsKfQoKY2xhc3MgQzQ4 CnsKcHVibGljOgogICBpbnQgajsKCiAgIEM0OCAoKSAgICB7IGogPSAxOyB9CiAgIHZvaWQgZiAo KSB7IGogPSAyOyB9CiAgfkM0OCAoKSAgICB7IG9rID0gKGogPT0gMSk7IH0KfTsKCmJvb2wgdGVz dF9jYXNlNDggKGludCB6ZXJvLCBpbnQgb25lKQp7CiAgIGludCBpOwoKICAgb2sgPSBGQUxTRTsK CiAgIHRyeQogICB7CiAgICAgIEM0OCBjNDg7CgogICAgICBmb3IgKGk9MDsgaTwxMDA7IGkrKykK ICAgICAgewogICAgICAgICBpZiAob25lID09IHplcm8pCiAgICAgICAgICAgIG9rID0gKG9uZSA9 PSAwKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICBvayA9ICh6ZXJvID09IDEpOwogICAgICAg ICBkb190aHJvdyAoKTsKICAgICAgICAgYzQ4LmYgKCk7CiAgICAgIH0KICAgfQoKICAgY2F0Y2gg KC4uLikKICAgewogICB9CgogICByZXR1cm4gKG9rKTsKfQoKY2xhc3MgQzUwCnsKcHVibGljOgog ICBpbnQgaTsKCiAgIEM1MCAoKSAgICB7IGkgPSAxOyB9CiAgIHZvaWQgZiAoKSB7IGkgPSAyOyB9 CiAgfkM1MCAoKSAgICB7IG9rID0gKGkgPT0gMSk7IH0KfTsKCmNsYXNzIEM1MEEKewpwdWJsaWM6 CiAgIGludCBqOwoKICAgQzUwQSAoKSAgIHsgaiA9IDE7IH0KICAgdm9pZCBmICgpIHsgaiA9IDI7 IH0KICB+QzUwQSAoKSAgIHsgb2sgPSAoaiA9PSAxKTsgfQp9OwoKYm9vbCB0ZXN0X2Nhc2U1MCAo aW50IHplcm8sIGludCBvbmUpCnsKICAgb2sgPSBGQUxTRTsKCiAgIHRyeQogICB7CiAgICAgIEM1 MCBjNTA7CgogICAgICBpZiAob25lID09IHplcm8pCiAgICAgIHsKICAgICAgICAgZG9fdGhyb3cg KCk7CiAgICAgICAgIGM1MC5mICgpOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAg ICBDNTBBIGM1MGE7CiAgICAgICAgIGRvX3Rocm93ICgpOwogICAgICAgICBjNTBhLmYgKCk7CiAg ICAgICAgIGM1MC5mICgpOwogICAgICB9CiAgIH0KCiAgIGNhdGNoICguLi4pCiAgIHsKICAgfQoK ICAgcmV0dXJuIChvayk7Cn0KCnZvaWQgZG9fdGhyb3cgKCkKewogICB0aHJvdyAiZXhjZXB0aW9u IjsKfQoK