This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Issues when emitting sjlj dispatch table


Hi guys,

I found an ICE when emitting sjlj dispatch table for ARC. Namely, in sjlj_emit_dispatch_table() function, we create a dispatch table where the case elements are having the high value is set to NULL (except.c:1326). Later, these case statements are used by expand_sjlj_dispatch_table() (stmt.c:1006) where we create a case list requiring also the high element (stmt.c:1066). This leads to an error when we try to compute the high bounds in emit_case_dispatch_table() (stmt.c:786), due to the fact that high value is null.

In gcc7.x, we were initializing the high value of case elements in sjlj_emit_dispatch_table() with the CASE_LOW. Shouldn't we do the same thing, or do I miss something.

A test is attached, the error is visible for ARC backend, the option for the compiler should be -O2.

Thanks,
Claudiu

Attachment: complex_io.ii
Description: complex_io.ii


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]