diff --git a/src/Changes b/src/Changes index acf160a341..8731e45ca1 100644 --- a/src/Changes +++ b/src/Changes @@ -1,5 +1,26 @@ Version 7.1 +10/16/26 [GH #302] +Incorrect order of base-class initializers in class template + +Previously, in the IL for prototype instantiations of class templates, +base-class mem-initializers with non-type template arguments could appear after +the initializers for other base classes. Such initializers are now recorded in +base-class declaration order when the base class can be identified. +Initializers for base classes that cannot yet be identified now retain their +source order relative to the next initializer for an identified nonvirtual +direct base class. For example, with --c++11: + + template struct A { }; + struct B { }; + template struct C : A, B { + C() : A(), B() { } // Previously recorded as "B(), A()". + C(int) : A<+N>(), B() { } // Previously recorded as "B(), A<+N>()". + }; + +Both initializer lists are now recorded in the order shown. + + 10/16/26 [GH #229] Improper handling of "if constexpr" substatements diff --git a/src/decl_inits.c b/src/decl_inits.c index 207382cf20..c077697a93 100644 --- a/src/decl_inits.c +++ b/src/decl_inits.c @@ -7508,6 +7508,14 @@ typedef struct a_ctor_init_block { a_boolean out_of_order_diag_issued; /* TRUE if a diagnostic has been issued about mem-initializers not matching declaration order. */ + a_constructor_init_ptr + first_pending_unresolved_base_init; + /* First pending constructor init for a base class + not matched with the base class list. These entries + occupy the tail of direct_list until the next + mem-initializer for a matched nonvirtual direct + base class is scanned. NULL if no entries are + pending. */ a_boolean pack_expansion_context_started; /* TRUE if begin_potential_pack_expansion_context has been called for a mem-initializer, and elements @@ -7597,10 +7605,61 @@ template containing the ctor-initializer is instantiated. cibp->end_of_direct_list->next = new_cip; } /* if */ cibp->end_of_direct_list = new_cip; + if (cibp->first_pending_unresolved_base_init == NULL) { + cibp->first_pending_unresolved_base_init = new_cip; + } /* if */ return new_cip; } /* add_new_unresolved_base_ctor_init */ +static void move_pending_unresolved_base_inits( + a_ctor_init_block *cibp, + a_constructor_init_ptr explicit_cip) +/* +cibp tracks the constructor init entries for the constructor being defined. +If it has pending entries for unresolved base classes, move them from the tail +of direct_list to immediately before explicit_cip and clear the pending state. +explicit_cip is the existing init entry for the matched nonvirtual direct base +class whose mem-initializer is being scanned. This preserves the source order +of the unresolved mem-initializers relative to that mem-initializer. +*/ +{ + a_constructor_init_ptr first_pending = + cibp->first_pending_unresolved_base_init; + a_constructor_init_ptr last_pending = cibp->end_of_direct_list; + + if (first_pending != NULL) { + /* Find the predecessors of the pending tail and explicit_cip. */ + a_constructor_init_ptr prev_of_pending = NULL, prev_of_explicit = NULL; + + check_assertion(last_pending != NULL && last_pending->next == NULL); + for (a_constructor_init_ptr cip = cibp->direct_list, prev_cip = NULL; + cip != NULL; + prev_cip = cip, cip = cip->next) { + if (cip == first_pending) { + prev_of_pending = prev_cip; + break; + } /* if */ + if (cip == explicit_cip) prev_of_explicit = prev_cip; + } /* for */ + check_assertion(prev_of_pending != NULL && + (explicit_cip == cibp->direct_list || + prev_of_explicit != NULL)); + /* Remove the pending entries from the end of the list and splice them + before explicit_cip. */ + prev_of_pending->next = NULL; + cibp->end_of_direct_list = prev_of_pending; + last_pending->next = explicit_cip; + if (prev_of_explicit == NULL) { + cibp->direct_list = first_pending; + } else { + prev_of_explicit->next = first_pending; + } /* if */ + cibp->first_pending_unresolved_base_init = NULL; + } /* if */ +} /* move_pending_unresolved_base_inits */ + + static a_symbol_ptr look_up_mem_initializer_id(void) /* The current token is a (generalized) identifier of a mem-initializer-id (which @@ -7967,7 +8026,8 @@ all known yet; it is left unchanged otherwise. that only direct and virtual base classes can be specified. */ bcp = base_classes_of(class_type); for (; bcp != NULL; bcp = bcp->next) { - if (same_entities(bcp->type, init_type)) { + if (identical_types_full(bcp->type, init_type, + ITF_EXACT_DECLTYPE_EXPR_MATCH_REQUIRED)) { if (bcp->direct || bcp->is_virtual) { if (found_bcp == NULL) { found_bcp = bcp; @@ -8036,10 +8096,13 @@ all known yet; it is left unchanged otherwise. for (; new_cip != NULL; new_cip = new_cip->next) { if (new_cip->variant.base_class == bcp) break; } /* for */ - if (new_cip == NULL && prototype_instantiation) { - new_cip = add_new_unresolved_base_ctor_init(cibp,init_type); - } check_assertion(new_cip != NULL); + if (!bcp->is_virtual) { + /* Place pending unresolved base initializers before this matched + direct-base initializer, following their relative order in the + ctor-initializer list. */ + move_pending_unresolved_base_inits(cibp, new_cip); + } /* if */ /* new_cip was initially marked as compiler-generated. Reset the flag now that it's appeared explicitly in the ctor-initializer list. */ @@ -9301,6 +9364,7 @@ initialized. These are addressed in the course of the processing. cib.pending_decltype_pos = null_source_position; cib.has_explicit_init = FALSE; cib.out_of_order_diag_issued = FALSE; + cib.first_pending_unresolved_base_init = NULL; cib.pack_expansion_context_started = FALSE; if (user_defined && curr_token == tok_colon) { /* User-specified initializers are present. */ diff --git a/tests/tests/regressions/.gh-302.rto/default.1.1.txt b/tests/tests/regressions/.gh-302.rto/default.1.1.txt new file mode 100644 index 0000000000..6bf176dd5d --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/default.1.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=1 --il_display --no_il_lower --c++11 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 14 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 14 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 14 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 14 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 28 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 28 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 28 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 28 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 45 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 45 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 45 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 45 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 59 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 59 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 60 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 59 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 59 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/default.2.1.txt b/tests/tests/regressions/.gh-302.rto/default.2.1.txt new file mode 100644 index 0000000000..24257118ab --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/default.2.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=2 --il_display --no_il_lower --c++11 --gn 160200 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 14 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 14 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 14 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 14 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 28 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 28 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 28 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 28 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 45 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 45 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 45 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 45 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 59 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 59 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 59 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 59 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 60 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/default.3.1.txt b/tests/tests/regressions/.gh-302.rto/default.3.1.txt new file mode 100644 index 0000000000..cf4a5b0e9d --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/default.3.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=3 --il_display --no_il_lower --c++11 --clang_version 230100 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 14 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 14 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 14 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 14 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 28 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 28 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 28 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 28 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 45 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 45 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 45 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 45 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 59 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 59 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 59 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 59 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 60 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/default.4.1.txt b/tests/tests/regressions/.gh-302.rto/default.4.1.txt new file mode 100644 index 0000000000..0e87ee2193 --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/default.4.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=4 --il_display --no_il_lower --ms_c++20 --microsoft_version 1951 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 14 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 14 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: type_param::A (in type_param::C) + start.seq: 28 +orig_type: file-scope type#3: type_param::A + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: type_param::B (in type_param::C) + start.seq: 28 +orig_type: file-scope type#4: type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: template_param::A

(in template_param::C

) + start.seq: 45 +orig_type: file-scope type#5: template_param::A

+ +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: template_param::B (in template_param::C

) + start.seq: 45 +orig_type: file-scope type#6: template_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 59 +orig_type: file-scope type#7: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 59 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 60 +orig_type: file-scope type#9: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: using_decltype::A (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#10: using_decltype::A + +func-scope constructor-init#12 +next: func-scope constructor-init#13 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: using_decltype::A (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#11: using_decltype::A + +func-scope constructor-init#13 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: using_decltype::B (in using_decltype::C) + start.seq: 80 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#14 +next: func-scope constructor-init#15 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#10: using_decltype::A + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#11: using_decltype::A + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#14 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 14 +orig_type: file-scope type#13: non_type_param::A<1> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param::B (in non_type_param::C<1>) + start.seq: 14 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: type_param::A (in type_param::C) + start.seq: 28 +orig_type: file-scope type#14: type_param::A + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: type_param::B (in type_param::C) + start.seq: 28 +orig_type: file-scope type#4: type_param::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: template_param::A (in template_param::C) + start.seq: 45 +orig_type: file-scope type#15: template_param::A + +func-scope constructor-init#22 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: template_param::B (in template_param::C) + start.seq: 45 +orig_type: file-scope type#6: template_param::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#23 +next: func-scope constructor-init#24 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 59 +orig_type: file-scope type#16: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#24 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 59 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#23 + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#16: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#25 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 80 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.1.1.txt b/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.1.1.txt new file mode 100644 index 0000000000..d9cab47440 --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.1.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=1 --il_display --no_il_lower --c++11 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 46 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 46 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 60 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 61 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.2.1.txt b/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.2.1.txt new file mode 100644 index 0000000000..bbdaa57853 --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.2.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=2 --il_display --no_il_lower --c++11 --gn 160200 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 46 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 46 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 60 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 61 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.3.1.txt b/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.3.1.txt new file mode 100644 index 0000000000..a695b09684 --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.3.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=3 --il_display --no_il_lower --c++11 --clang_version 230100 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 46 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 46 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 60 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 61 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.4.1.txt b/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.4.1.txt new file mode 100644 index 0000000000..f141aca8dd --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/edg_x86_32_cp.4.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=4 --il_display --no_il_lower --ms_c++20 --microsoft_version 1951 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#3: type_param::A + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: template_param::A

(in template_param::C

) + start.seq: 46 +orig_type: file-scope type#5: template_param::A

+ +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: template_param::B (in template_param::C

) + start.seq: 46 +orig_type: file-scope type#6: template_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 60 +orig_type: file-scope type#7: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 61 +orig_type: file-scope type#9: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 61 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#10: using_decltype::A + +func-scope constructor-init#12 +next: func-scope constructor-init#13 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#11: using_decltype::A + +func-scope constructor-init#13 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#14 +next: func-scope constructor-init#15 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#10: using_decltype::A + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#11: using_decltype::A + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: using_decltype::B (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#14 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#13: non_type_param::A<1> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param::B (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#14: type_param::A + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: template_param::A (in template_param::C) + start.seq: 46 +orig_type: file-scope type#15: template_param::A + +func-scope constructor-init#22 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: template_param::B (in template_param::C) + start.seq: 46 +orig_type: file-scope type#6: template_param::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#23 +next: func-scope constructor-init#24 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#16: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#24 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#23 + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#16: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#25 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.1.1.txt b/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.1.1.txt new file mode 100644 index 0000000000..d9cab47440 --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.1.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=1 --il_display --no_il_lower --c++11 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 46 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 46 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 60 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 61 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.2.1.txt b/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.2.1.txt new file mode 100644 index 0000000000..bbdaa57853 --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.2.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=2 --il_display --no_il_lower --c++11 --gn 160200 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 46 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 46 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 60 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 61 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.3.1.txt b/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.3.1.txt new file mode 100644 index 0000000000..a695b09684 --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.3.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=3 --il_display --no_il_lower --c++11 --clang_version 230100 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#3: non_type_param::A<1> + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: non_type_param::B (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::A + +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#6: type_param::A + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#5: type_param::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: template_param::A

(in template_param::C

) + start.seq: 46 +orig_type: file-scope type#7: template_param::A

+ +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: template_param::B (in template_param::C

) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: template_param::A (in template_param::C) + start.seq: 46 +orig_type: file-scope type#9: template_param::A + +func-scope constructor-init#12 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: template_param::B (in template_param::C) + start.seq: 46 +orig_type: file-scope type#8: template_param::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#13 +next: func-scope constructor-init#14 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 60 +orig_type: file-scope type#10: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#14 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#13 + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#15 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 61 +orig_type: file-scope type#13: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#12: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#11: non_type_param_functionally_equivalent::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#22 +next: func-scope constructor-init#23 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#23 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#24 +next: func-scope constructor-init#25 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#24 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#14: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#15: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: using_decltype::B (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#16: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.4.1.txt b/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.4.1.txt new file mode 100644 index 0000000000..f141aca8dd --- /dev/null +++ b/tests/tests/regressions/.gh-302.rto/edg_x86_64_cp.4.1.txt @@ -0,0 +1,341 @@ +fe_only -DTEST_NUMBER=4 --il_display --no_il_lower --ms_c++20 --microsoft_version 1951 Test_name.c +func-scope constructor-init#1 +next: func-scope constructor-init#2 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#1: non_type_param::A (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#1: non_type_param::A + +func-scope constructor-init#2 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#2: non_type_param::B (in non_type_param::C) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#1 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#1: C +constructor_inits: func-scope constructor-init#1 + +func-scope constructor-init#3 +next: func-scope constructor-init#4 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#3: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#3: type_param::A + +func-scope constructor-init#4 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#4: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::B + +func-scope scope#2 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#2: C +constructor_inits: func-scope constructor-init#3 + +func-scope constructor-init#5 +next: func-scope constructor-init#6 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#5: template_param::A

(in template_param::C

) + start.seq: 46 +orig_type: file-scope type#5: template_param::A

+ +func-scope constructor-init#6 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#6: template_param::B (in template_param::C

) + start.seq: 46 +orig_type: file-scope type#6: template_param::B + +func-scope scope#3 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#3: C +constructor_inits: func-scope constructor-init#5 + +func-scope constructor-init#7 +next: func-scope constructor-init#8 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#7: non_type_param_functionally_equivalent::A<(+ N)> + start.seq: 60 +orig_type: file-scope type#7: non_type_param_functionally_equivalent::A<(+ N)> + +func-scope constructor-init#8 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 60 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#4 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#4: C +constructor_inits: func-scope constructor-init#7 + +func-scope constructor-init#9 +next: func-scope constructor-init#10 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#9: non_type_param_functionally_equivalent::A<(N + 0)> + start.seq: 61 +orig_type: file-scope type#9: non_type_param_functionally_equivalent::A<(N + 0)> + +func-scope constructor-init#10 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#8: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C) + start.seq: 61 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#5 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#5: C +constructor_inits: func-scope constructor-init#9 + +func-scope constructor-init#11 +next: func-scope constructor-init#12 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#10: using_decltype::A + +func-scope constructor-init#12 +next: func-scope constructor-init#13 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: using_decltype::A (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#11: using_decltype::A + +func-scope constructor-init#13 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: using_decltype::B (in using_decltype::C) + start.seq: 81 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#6 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#6: C +constructor_inits: func-scope constructor-init#11 + +func-scope constructor-init#14 +next: func-scope constructor-init#15 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#10: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#10: using_decltype::A + +func-scope constructor-init#15 +next: func-scope constructor-init#16 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#11: using_decltype::A (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#11: using_decltype::A + +func-scope constructor-init#16 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#12: using_decltype::B (in using_decltype::C) + start.seq: 82 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#7 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#7: C +constructor_inits: func-scope constructor-init#14 + +func-scope constructor-init#17 +next: func-scope constructor-init#18 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#13: non_type_param::A<1> (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#13: non_type_param::A<1> + +func-scope constructor-init#18 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#14: non_type_param::B (in non_type_param::C<1>) + start.seq: 15 +orig_type: file-scope type#2: non_type_param::B + +func-scope scope#8 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#8: C +constructor_inits: func-scope constructor-init#17 + +func-scope constructor-init#19 +next: func-scope constructor-init#20 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#15: type_param::A (in type_param::C) + start.seq: 29 +orig_type: file-scope type#14: type_param::A + +func-scope constructor-init#20 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#16: type_param::B (in type_param::C) + start.seq: 29 +orig_type: file-scope type#4: type_param::B + +func-scope scope#9 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#9: C +constructor_inits: func-scope constructor-init#19 + +func-scope constructor-init#21 +next: func-scope constructor-init#22 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#17: template_param::A (in template_param::C) + start.seq: 46 +orig_type: file-scope type#15: template_param::A + +func-scope constructor-init#22 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#18: template_param::B (in template_param::C) + start.seq: 46 +orig_type: file-scope type#6: template_param::B + +func-scope scope#10 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#10: C +constructor_inits: func-scope constructor-init#21 + +func-scope constructor-init#23 +next: func-scope constructor-init#24 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#16: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#24 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 60 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#11 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#11: C +constructor_inits: func-scope constructor-init#23 + +func-scope constructor-init#25 +next: func-scope constructor-init#26 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#19: non_type_param_functionally_equivalent::A<1> (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#16: non_type_param_functionally_equivalent::A<1> + +func-scope constructor-init#26 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#20: non_type_param_functionally_equivalent::B (in non_type_param_functionally_equivalent::C<1>) + start.seq: 61 +orig_type: file-scope type#8: non_type_param_functionally_equivalent::B + +func-scope scope#12 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#12: C +constructor_inits: func-scope constructor-init#25 + +func-scope constructor-init#27 +next: func-scope constructor-init#28 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#28 +next: func-scope constructor-init#29 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#29 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 81 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#13 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#13: C +constructor_inits: func-scope constructor-init#27 + +func-scope constructor-init#30 +next: func-scope constructor-init#31 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#21: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#17: using_decltype::A + +func-scope constructor-init#31 +next: func-scope constructor-init#32 +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#22: using_decltype::A (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#18: using_decltype::A + +func-scope constructor-init#32 +next: NULL +compiler_generated: FALSE +kind: cik_direct_base_class +base_class: file-scope base-class#23: using_decltype::B (in using_decltype::C>) + start.seq: 82 +orig_type: file-scope type#12: using_decltype::B + +func-scope scope#14 +next: NULL +kind: sck_function +routine.ptr: file-scope routine#14: C +constructor_inits: func-scope constructor-init#30 + diff --git a/tests/tests/regressions/gh-302.sft.cpp b/tests/tests/regressions/gh-302.sft.cpp new file mode 100644 index 0000000000..6b408c066d --- /dev/null +++ b/tests/tests/regressions/gh-302.sft.cpp @@ -0,0 +1,85 @@ +//type:fp +//options:--c++11:--c++11 --gn 160200:--c++11 --clang_version 230100:--ms_c++20 --microsoft_version 1951 +//options_all:--il_display --no_il_lower +//filter:awk -v RS='' -v ORS='\n\n' '/^func-scope (constructor-init@|scope@)/' | grep -E -e '^(next|compiler_generated|kind|base_class|orig_type| start[.]seq|routine[.]ptr|constructor_inits):' -e '^func-scope ' -e '^$' | edg-enumerate-il-addrs + +namespace non_type_param +{ + template + struct A { }; + + struct B { }; + + template struct C : A, B { + C() : A(), B() { } + }; + + template struct C<1>; +} + +namespace type_param +{ + template + struct A { }; + + struct B { }; + + template struct C : A, B { + C() : A(), B() { } + }; + + template struct C; +} + +namespace template_param +{ + template + struct X { }; + + template class> + struct A { }; + + struct B { }; + + template class P> struct C : A

, B { + C() : A

(), B() { } + }; + + template struct C; +} + +namespace non_type_param_functionally_equivalent +{ + template + struct A { }; + + struct B { }; + + template struct C : A, B { + C(char) : A<+N>(), B() { } + C(int) : A(), B() { } + }; + + template struct C<1>; +} + +namespace using_decltype +{ + template + struct X { + static T a; + static U b; + }; + + template + struct A { }; + + struct B { }; + + template struct C : A, A, B { + C(char) : A(), A(), B() { } + C(int) : B(), A(), A() { } + }; + + template struct C>; +}