Skip to content

Commit 0eb43e4

Browse files
committed
Properly set the name for C++ overload set instructions in SemIR
This is a followup of carbon-language#5891. Based on carbon-language#6151. Part of carbon-language#5915.
1 parent 00f6c38 commit 0eb43e4

37 files changed

+1097
-1065
lines changed

toolchain/check/testdata/interop/cpp/builtins.carbon

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -549,8 +549,8 @@ fn F() {
549549
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete]
550550
// CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete]
551551
// CHECK:STDOUT: %pattern_type.4a9: type = pattern_type %u32 [concrete]
552-
// CHECK:STDOUT: %.15a: type = cpp_overload_set_type @<null name> [concrete]
553-
// CHECK:STDOUT: %.afb: %.15a = cpp_overload_set_value @<null name> [concrete]
552+
// CHECK:STDOUT: %unsigned_int.foo.cpp_overload_set.type: type = cpp_overload_set_type @unsigned_int.foo.cpp_overload_set [concrete]
553+
// CHECK:STDOUT: %unsigned_int.foo.cpp_overload_set.value: %unsigned_int.foo.cpp_overload_set.type = cpp_overload_set_value @unsigned_int.foo.cpp_overload_set [concrete]
554554
// CHECK:STDOUT: %ptr.d47: type = ptr_type %unsigned_int [concrete]
555555
// CHECK:STDOUT: %unsigned_int.foo.type: type = fn_type @unsigned_int.foo [concrete]
556556
// CHECK:STDOUT: %unsigned_int.foo: %unsigned_int.foo.type = struct_value () [concrete]
@@ -566,7 +566,7 @@ fn F() {
566566
// CHECK:STDOUT: import Cpp//...
567567
// CHECK:STDOUT: }
568568
// CHECK:STDOUT: %unsigned_int.decl: type = class_decl @unsigned_int [concrete = constants.%unsigned_int] {} {}
569-
// CHECK:STDOUT: %.afb: %.15a = cpp_overload_set_value @<null name> [concrete = constants.%.afb]
569+
// CHECK:STDOUT: %unsigned_int.foo.cpp_overload_set.value: %unsigned_int.foo.cpp_overload_set.type = cpp_overload_set_value @unsigned_int.foo.cpp_overload_set [concrete = constants.%unsigned_int.foo.cpp_overload_set.value]
570570
// CHECK:STDOUT: %unsigned_int.foo.decl: %unsigned_int.foo.type = fn_decl @unsigned_int.foo [concrete = constants.%unsigned_int.foo] {
571571
// CHECK:STDOUT: <elided>
572572
// CHECK:STDOUT: } {
@@ -590,7 +590,7 @@ fn F() {
590590
// CHECK:STDOUT: %x.patt: %pattern_type.4a9 = binding_pattern x [concrete]
591591
// CHECK:STDOUT: }
592592
// CHECK:STDOUT: %unsigned_int.ref.loc13: ref %unsigned_int = name_ref unsigned_int, %unsigned_int
593-
// CHECK:STDOUT: %foo.ref: %.15a = name_ref foo, imports.%.afb [concrete = constants.%.afb]
593+
// CHECK:STDOUT: %foo.ref: %unsigned_int.foo.cpp_overload_set.type = name_ref foo, imports.%unsigned_int.foo.cpp_overload_set.value [concrete = constants.%unsigned_int.foo.cpp_overload_set.value]
594594
// CHECK:STDOUT: %bound_method.loc13: <bound method> = bound_method %unsigned_int.ref.loc13, %foo.ref
595595
// CHECK:STDOUT: %addr.loc13: %ptr.d47 = addr_of %unsigned_int.ref.loc13
596596
// CHECK:STDOUT: %unsigned_int.foo.call: init %u32 = call imports.%unsigned_int.foo.decl(%addr.loc13)

toolchain/check/testdata/interop/cpp/class/access.carbon

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -492,14 +492,14 @@ fn F() {
492492
// CHECK:STDOUT: %S: type = class_type @S [concrete]
493493
// CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete]
494494
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
495-
// CHECK:STDOUT: %.177: type = cpp_overload_set_type @<null name> [concrete]
496-
// CHECK:STDOUT: %.dcb: %.177 = cpp_overload_set_value @<null name> [concrete]
495+
// CHECK:STDOUT: %S.foo.cpp_overload_set.type: type = cpp_overload_set_type @S.foo.cpp_overload_set [concrete]
496+
// CHECK:STDOUT: %S.foo.cpp_overload_set.value: %S.foo.cpp_overload_set.type = cpp_overload_set_value @S.foo.cpp_overload_set [concrete]
497497
// CHECK:STDOUT: %S.foo.type: type = fn_type @S.foo [concrete]
498498
// CHECK:STDOUT: %S.foo: %S.foo.type = struct_value () [concrete]
499499
// CHECK:STDOUT: }
500500
// CHECK:STDOUT:
501501
// CHECK:STDOUT: imports {
502-
// CHECK:STDOUT: %.dcb: %.177 = cpp_overload_set_value @<null name> [concrete = constants.%.dcb]
502+
// CHECK:STDOUT: %S.foo.cpp_overload_set.value: %S.foo.cpp_overload_set.type = cpp_overload_set_value @S.foo.cpp_overload_set [concrete = constants.%S.foo.cpp_overload_set.value]
503503
// CHECK:STDOUT: %S.foo.decl: %S.foo.type = fn_decl @S.foo [concrete = constants.%S.foo] {
504504
// CHECK:STDOUT: <elided>
505505
// CHECK:STDOUT: } {
@@ -511,7 +511,7 @@ fn F() {
511511
// CHECK:STDOUT: !entry:
512512
// CHECK:STDOUT: %s.ref: %ptr.5c7 = name_ref s, %s
513513
// CHECK:STDOUT: %.loc8: ref %S = deref %s.ref
514-
// CHECK:STDOUT: %foo.ref: %.177 = name_ref foo, imports.%.dcb [concrete = constants.%.dcb]
514+
// CHECK:STDOUT: %foo.ref: %S.foo.cpp_overload_set.type = name_ref foo, imports.%S.foo.cpp_overload_set.value [concrete = constants.%S.foo.cpp_overload_set.value]
515515
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %.loc8, %foo.ref
516516
// CHECK:STDOUT: %addr: %ptr.5c7 = addr_of %.loc8
517517
// CHECK:STDOUT: %S.foo.call: init %empty_tuple.type = call imports.%S.foo.decl(%addr)
@@ -523,13 +523,13 @@ fn F() {
523523
// CHECK:STDOUT: constants {
524524
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
525525
// CHECK:STDOUT: %C: type = class_type @C [concrete]
526-
// CHECK:STDOUT: %.d40: type = cpp_overload_set_type @<null name> [concrete]
527-
// CHECK:STDOUT: %.40b: %.d40 = cpp_overload_set_value @<null name> [concrete]
526+
// CHECK:STDOUT: %C.C.cpp_overload_set.type: type = cpp_overload_set_type @C.C.cpp_overload_set [concrete]
527+
// CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete]
528528
// CHECK:STDOUT: %ptr.d9e: type = ptr_type %C [concrete]
529529
// CHECK:STDOUT: %C__carbon_thunk.type: type = fn_type @C__carbon_thunk [concrete]
530530
// CHECK:STDOUT: %C__carbon_thunk: %C__carbon_thunk.type = struct_value () [concrete]
531-
// CHECK:STDOUT: %.cd1: type = cpp_overload_set_type @<null name> [concrete]
532-
// CHECK:STDOUT: %.e4a: %.cd1 = cpp_overload_set_value @<null name> [concrete]
531+
// CHECK:STDOUT: %C.foo.cpp_overload_set.type: type = cpp_overload_set_type @C.foo.cpp_overload_set [concrete]
532+
// CHECK:STDOUT: %C.foo.cpp_overload_set.value: %C.foo.cpp_overload_set.type = cpp_overload_set_value @C.foo.cpp_overload_set [concrete]
533533
// CHECK:STDOUT: %C.foo.type: type = fn_type @C.foo [concrete]
534534
// CHECK:STDOUT: %C.foo: %C.foo.type = struct_value () [concrete]
535535
// CHECK:STDOUT: %type_where: type = facet_type <type where .Self impls <CanDestroy>> [concrete]
@@ -544,29 +544,29 @@ fn F() {
544544
// CHECK:STDOUT: import Cpp//...
545545
// CHECK:STDOUT: }
546546
// CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
547-
// CHECK:STDOUT: %.40b: %.d40 = cpp_overload_set_value @<null name> [concrete = constants.%.40b]
547+
// CHECK:STDOUT: %C.C.cpp_overload_set.value: %C.C.cpp_overload_set.type = cpp_overload_set_value @C.C.cpp_overload_set [concrete = constants.%C.C.cpp_overload_set.value]
548548
// CHECK:STDOUT: %C__carbon_thunk.decl: %C__carbon_thunk.type = fn_decl @C__carbon_thunk [concrete = constants.%C__carbon_thunk] {
549549
// CHECK:STDOUT: <elided>
550550
// CHECK:STDOUT: } {
551551
// CHECK:STDOUT: <elided>
552552
// CHECK:STDOUT: }
553-
// CHECK:STDOUT: %.e4a: %.cd1 = cpp_overload_set_value @<null name> [concrete = constants.%.e4a]
553+
// CHECK:STDOUT: %C.foo.cpp_overload_set.value: %C.foo.cpp_overload_set.type = cpp_overload_set_value @C.foo.cpp_overload_set [concrete = constants.%C.foo.cpp_overload_set.value]
554554
// CHECK:STDOUT: %C.foo.decl: %C.foo.type = fn_decl @C.foo [concrete = constants.%C.foo] {} {}
555555
// CHECK:STDOUT: }
556556
// CHECK:STDOUT:
557557
// CHECK:STDOUT: fn @F() {
558558
// CHECK:STDOUT: !entry:
559559
// CHECK:STDOUT: %Cpp.ref.loc8: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
560560
// CHECK:STDOUT: %C.ref.loc8_6: type = name_ref C, imports.%C.decl [concrete = constants.%C]
561-
// CHECK:STDOUT: %C.ref.loc8_8: %.d40 = name_ref C, imports.%.40b [concrete = constants.%.40b]
561+
// CHECK:STDOUT: %C.ref.loc8_8: %C.C.cpp_overload_set.type = name_ref C, imports.%C.C.cpp_overload_set.value [concrete = constants.%C.C.cpp_overload_set.value]
562562
// CHECK:STDOUT: %.loc8_11.1: ref %C = temporary_storage
563563
// CHECK:STDOUT: %addr.loc8_11.1: %ptr.d9e = addr_of %.loc8_11.1
564564
// CHECK:STDOUT: %C__carbon_thunk.call: init %empty_tuple.type = call imports.%C__carbon_thunk.decl(%addr.loc8_11.1)
565565
// CHECK:STDOUT: %.loc8_11.2: init %C = in_place_init %C__carbon_thunk.call, %.loc8_11.1
566566
// CHECK:STDOUT: %.loc8_11.3: ref %C = temporary %.loc8_11.1, %.loc8_11.2
567567
// CHECK:STDOUT: %Cpp.ref.loc9: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
568568
// CHECK:STDOUT: %C.ref.loc9: type = name_ref C, imports.%C.decl [concrete = constants.%C]
569-
// CHECK:STDOUT: %foo.ref: %.cd1 = name_ref foo, imports.%.e4a [concrete = constants.%.e4a]
569+
// CHECK:STDOUT: %foo.ref: %C.foo.cpp_overload_set.type = name_ref foo, imports.%C.foo.cpp_overload_set.value [concrete = constants.%C.foo.cpp_overload_set.value]
570570
// CHECK:STDOUT: %C.foo.call: init %empty_tuple.type = call imports.%C.foo.decl()
571571
// CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%C, () [concrete = constants.%facet_value]
572572
// CHECK:STDOUT: %.loc8_11.4: %type_where = converted constants.%C, %facet_value [concrete = constants.%facet_value]
@@ -583,8 +583,8 @@ fn F() {
583583
// CHECK:STDOUT: constants {
584584
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
585585
// CHECK:STDOUT: %DerivedPublic: type = class_type @DerivedPublic [concrete]
586-
// CHECK:STDOUT: %.5a6: type = cpp_overload_set_type @<null name> [concrete]
587-
// CHECK:STDOUT: %.607: %.5a6 = cpp_overload_set_value @<null name> [concrete]
586+
// CHECK:STDOUT: %DerivedPublic.foo.cpp_overload_set.type: type = cpp_overload_set_type @DerivedPublic.foo.cpp_overload_set [concrete]
587+
// CHECK:STDOUT: %DerivedPublic.foo.cpp_overload_set.value: %DerivedPublic.foo.cpp_overload_set.type = cpp_overload_set_value @DerivedPublic.foo.cpp_overload_set [concrete]
588588
// CHECK:STDOUT: %Base.foo.type: type = fn_type @Base.foo [concrete]
589589
// CHECK:STDOUT: %Base.foo: %Base.foo.type = struct_value () [concrete]
590590
// CHECK:STDOUT: }
@@ -595,15 +595,15 @@ fn F() {
595595
// CHECK:STDOUT: import Cpp//...
596596
// CHECK:STDOUT: }
597597
// CHECK:STDOUT: %DerivedPublic.decl: type = class_decl @DerivedPublic [concrete = constants.%DerivedPublic] {} {}
598-
// CHECK:STDOUT: %.607: %.5a6 = cpp_overload_set_value @<null name> [concrete = constants.%.607]
598+
// CHECK:STDOUT: %DerivedPublic.foo.cpp_overload_set.value: %DerivedPublic.foo.cpp_overload_set.type = cpp_overload_set_value @DerivedPublic.foo.cpp_overload_set [concrete = constants.%DerivedPublic.foo.cpp_overload_set.value]
599599
// CHECK:STDOUT: %Base.foo.decl: %Base.foo.type = fn_decl @Base.foo [concrete = constants.%Base.foo] {} {}
600600
// CHECK:STDOUT: }
601601
// CHECK:STDOUT:
602602
// CHECK:STDOUT: fn @F() {
603603
// CHECK:STDOUT: !entry:
604604
// CHECK:STDOUT: %Cpp.ref: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
605605
// CHECK:STDOUT: %DerivedPublic.ref: type = name_ref DerivedPublic, imports.%DerivedPublic.decl [concrete = constants.%DerivedPublic]
606-
// CHECK:STDOUT: %foo.ref: %.5a6 = name_ref foo, imports.%.607 [concrete = constants.%.607]
606+
// CHECK:STDOUT: %foo.ref: %DerivedPublic.foo.cpp_overload_set.type = name_ref foo, imports.%DerivedPublic.foo.cpp_overload_set.value [concrete = constants.%DerivedPublic.foo.cpp_overload_set.value]
607607
// CHECK:STDOUT: %Base.foo.call: init %empty_tuple.type = call imports.%Base.foo.decl()
608608
// CHECK:STDOUT: <elided>
609609
// CHECK:STDOUT: }

0 commit comments

Comments
 (0)