public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug middle-end/47401] New: Support for must-not-throw regions with SJLJ exceptions broken @ 2011-01-21 16:51 uweigand at gcc dot gnu.org 2011-01-21 16:52 ` [Bug middle-end/47401] " uweigand at gcc dot gnu.org ` (5 more replies) 0 siblings, 6 replies; 7+ messages in thread From: uweigand at gcc dot gnu.org @ 2011-01-21 16:51 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47401 Summary: Support for must-not-throw regions with SJLJ exceptions broken Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned@gcc.gnu.org ReportedBy: uweigand@gcc.gnu.org Target: spu-elf A couple of exception related tests are failing on SPU: FAIL: g++.dg/cpp0x/noexcept04.C execution test FAIL: g++.dg/cpp0x/noexcept05.C scan-assembler LSDA FAIL: g++.dg/eh/spec10.C execution test FAIL: g++.dg/eh/spec11.C scan-assembler LSDA These are related to must-not-throw regions. To implement those, we may have to register a personality function with empty LSDA. This has been implemented for DWARF CFI exception handling, but apparently not (fully?) for SJLJ exception handling. For example, the test case for noexcept05.C: struct A { ~A(); }; void g(); void f() noexcept { A var; g(); } compiles on the SPU to: .global _Z1fv .type _Z1fv, @function _Z1fv: stqd $lr,16($sp) stqd $sp,-48($sp) ai $sp,$sp,-48 brsl $lr,_Z1gv ai $2,$sp,32 ori $3,$2,0 brsl $lr,_ZN1AD1Ev ai $sp,$sp,48 lqd $lr,16($sp) bi $lr .size _Z1fv, .-_Z1fv Note the absence of any call to _Unwind_SJLJ_Register. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/47401] Support for must-not-throw regions with SJLJ exceptions broken 2011-01-21 16:51 [Bug middle-end/47401] New: Support for must-not-throw regions with SJLJ exceptions broken uweigand at gcc dot gnu.org @ 2011-01-21 16:52 ` uweigand at gcc dot gnu.org 2011-01-21 17:31 ` uweigand at gcc dot gnu.org ` (4 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: uweigand at gcc dot gnu.org @ 2011-01-21 16:52 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47401 --- Comment #1 from Ulrich Weigand <uweigand at gcc dot gnu.org> 2011-01-21 16:33:43 UTC --- Created attachment 23064 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23064 Proposed fix Patch from http://gcc.gnu.org/ml/gcc-patches/2011-01/msg01406.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/47401] Support for must-not-throw regions with SJLJ exceptions broken 2011-01-21 16:51 [Bug middle-end/47401] New: Support for must-not-throw regions with SJLJ exceptions broken uweigand at gcc dot gnu.org 2011-01-21 16:52 ` [Bug middle-end/47401] " uweigand at gcc dot gnu.org @ 2011-01-21 17:31 ` uweigand at gcc dot gnu.org 2011-01-21 17:38 ` uweigand at gcc dot gnu.org ` (3 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: uweigand at gcc dot gnu.org @ 2011-01-21 17:31 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47401 Ulrich Weigand <uweigand at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #23064|0 |1 is obsolete| | --- Comment #2 from Ulrich Weigand <uweigand at gcc dot gnu.org> 2011-01-21 17:18:59 UTC --- Created attachment 23066 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23066 Updated fix Updated patch from http://gcc.gnu.org/ml/gcc-patches/2011-01/msg01483.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/47401] Support for must-not-throw regions with SJLJ exceptions broken 2011-01-21 16:51 [Bug middle-end/47401] New: Support for must-not-throw regions with SJLJ exceptions broken uweigand at gcc dot gnu.org 2011-01-21 16:52 ` [Bug middle-end/47401] " uweigand at gcc dot gnu.org 2011-01-21 17:31 ` uweigand at gcc dot gnu.org @ 2011-01-21 17:38 ` uweigand at gcc dot gnu.org 2011-01-22 4:11 ` howarth at nitro dot med.uc.edu ` (2 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: uweigand at gcc dot gnu.org @ 2011-01-21 17:38 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47401 Ulrich Weigand <uweigand at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #23066|0 |1 is obsolete| | --- Comment #3 from Ulrich Weigand <uweigand at gcc dot gnu.org> 2011-01-21 17:29:40 UTC --- Created attachment 23067 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23067 Updated fix Minor update as requested ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/47401] Support for must-not-throw regions with SJLJ exceptions broken 2011-01-21 16:51 [Bug middle-end/47401] New: Support for must-not-throw regions with SJLJ exceptions broken uweigand at gcc dot gnu.org ` (2 preceding siblings ...) 2011-01-21 17:38 ` uweigand at gcc dot gnu.org @ 2011-01-22 4:11 ` howarth at nitro dot med.uc.edu 2011-01-22 21:46 ` uweigand at gcc dot gnu.org 2011-01-22 21:48 ` uweigand at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: howarth at nitro dot med.uc.edu @ 2011-01-22 4:11 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47401 Jack Howarth <howarth at nitro dot med.uc.edu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |howarth at nitro dot | |med.uc.edu --- Comment #4 from Jack Howarth <howarth at nitro dot med.uc.edu> 2011-01-22 02:49:05 UTC --- Updated fix regression tested on i386-apple-darwin10 with -enable-build-with-cxx to stress the use of exception handling... http://gcc.gnu.org/ml/gcc-testresults/2011-01/msg01914.html No regressions introduced on darwin. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/47401] Support for must-not-throw regions with SJLJ exceptions broken 2011-01-21 16:51 [Bug middle-end/47401] New: Support for must-not-throw regions with SJLJ exceptions broken uweigand at gcc dot gnu.org ` (3 preceding siblings ...) 2011-01-22 4:11 ` howarth at nitro dot med.uc.edu @ 2011-01-22 21:46 ` uweigand at gcc dot gnu.org 2011-01-22 21:48 ` uweigand at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: uweigand at gcc dot gnu.org @ 2011-01-22 21:46 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47401 --- Comment #5 from Ulrich Weigand <uweigand at gcc dot gnu.org> 2011-01-22 21:24:57 UTC --- Author: uweigand Date: Sat Jan 22 21:24:54 2011 New Revision: 169134 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=169134 Log: PR middle-end/47401 * except.c (sjlj_assign_call_site_values): Move setting the crtl->uses_eh_lsda flag to ... (sjlj_mark_call_sites): ... here. (sjlj_emit_function_enter): Support NULL dispatch label. (sjlj_build_landing_pads): In a function with no landing pads that still has must-not-throw regions, generate code to register a personality function with empty LSDA. Modified: trunk/gcc/ChangeLog trunk/gcc/except.c ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug middle-end/47401] Support for must-not-throw regions with SJLJ exceptions broken 2011-01-21 16:51 [Bug middle-end/47401] New: Support for must-not-throw regions with SJLJ exceptions broken uweigand at gcc dot gnu.org ` (4 preceding siblings ...) 2011-01-22 21:46 ` uweigand at gcc dot gnu.org @ 2011-01-22 21:48 ` uweigand at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: uweigand at gcc dot gnu.org @ 2011-01-22 21:48 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47401 Ulrich Weigand <uweigand at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED --- Comment #6 from Ulrich Weigand <uweigand at gcc dot gnu.org> 2011-01-22 21:26:37 UTC --- Fixed. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-01-22 21:27 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-01-21 16:51 [Bug middle-end/47401] New: Support for must-not-throw regions with SJLJ exceptions broken uweigand at gcc dot gnu.org 2011-01-21 16:52 ` [Bug middle-end/47401] " uweigand at gcc dot gnu.org 2011-01-21 17:31 ` uweigand at gcc dot gnu.org 2011-01-21 17:38 ` uweigand at gcc dot gnu.org 2011-01-22 4:11 ` howarth at nitro dot med.uc.edu 2011-01-22 21:46 ` uweigand at gcc dot gnu.org 2011-01-22 21:48 ` uweigand at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).