@@ -239,9 +239,19 @@ void java_bytecode_convert_classt::convert(const classt &c)
239
239
extract_generic_superclass_reference (c.signature );
240
240
if (superclass_ref.has_value ())
241
241
{
242
- const java_generic_symbol_typet generic_base (
243
- base, superclass_ref.value (), qualified_classname);
244
- class_type.add_base (generic_base);
242
+ try
243
+ {
244
+ const java_generic_symbol_typet generic_base (
245
+ base, superclass_ref.value (), qualified_classname);
246
+ class_type.add_base (generic_base);
247
+ }
248
+ catch (unsupported_java_class_signature_exceptiont)
249
+ {
250
+ debug () << " unsupported generic superclass signature "
251
+ << id2string (*superclass_ref)
252
+ << " falling back on using the descriptor" << eom;
253
+ class_type.add_base (base);
254
+ }
245
255
}
246
256
else
247
257
{
@@ -268,9 +278,19 @@ void java_bytecode_convert_classt::convert(const classt &c)
268
278
extract_generic_interface_reference (c.signature , id2string (interface));
269
279
if (interface_ref.has_value ())
270
280
{
271
- const java_generic_symbol_typet generic_base (
272
- base, interface_ref.value (), qualified_classname);
273
- class_type.add_base (generic_base);
281
+ try
282
+ {
283
+ const java_generic_symbol_typet generic_base (
284
+ base, interface_ref.value (), qualified_classname);
285
+ class_type.add_base (generic_base);
286
+ }
287
+ catch (unsupported_java_class_signature_exceptiont)
288
+ {
289
+ debug () << " unsupported generic interface signature "
290
+ << id2string (*interface_ref)
291
+ << " falling back on using the descriptor" << eom;
292
+ class_type.add_base (base);
293
+ }
274
294
}
275
295
else
276
296
{
0 commit comments