@@ -47,40 +47,42 @@ pub fn foo() where
4747 let _: Type4 = <Foo >:: bar;
4848}
4949
50- pub fn foo1 ( _: Type1 ) { }
50+ // Force arguments to be passed by using a reference. Otherwise, they may end up PassMode::Ignore
51+
52+ pub fn foo1 ( _: & Type1 ) { }
5153// CHECK: define{{.*}}4foo1{{.*}}!type ![[TYPE1:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
52- pub fn foo2 ( _: Type1 , _: Type1 ) { }
54+ pub fn foo2 ( _: & Type1 , _: & Type1 ) { }
5355// CHECK: define{{.*}}4foo2{{.*}}!type ![[TYPE2:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
54- pub fn foo3 ( _: Type1 , _: Type1 , _: Type1 ) { }
56+ pub fn foo3 ( _: & Type1 , _: & Type1 , _: & Type1 ) { }
5557// CHECK: define{{.*}}4foo3{{.*}}!type ![[TYPE3:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
56- pub fn foo4 ( _: Type2 ) { }
58+ pub fn foo4 ( _: & Type2 ) { }
5759// CHECK: define{{.*}}4foo4{{.*}}!type ![[TYPE4:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
58- pub fn foo5 ( _: Type2 , _: Type2 ) { }
60+ pub fn foo5 ( _: & Type2 , _: & Type2 ) { }
5961// CHECK: define{{.*}}4foo5{{.*}}!type ![[TYPE5:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
60- pub fn foo6 ( _: Type2 , _: Type2 , _: Type2 ) { }
62+ pub fn foo6 ( _: & Type2 , _: & Type2 , _: & Type2 ) { }
6163// CHECK: define{{.*}}4foo6{{.*}}!type ![[TYPE6:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
62- pub fn foo7 ( _: Type3 ) { }
64+ pub fn foo7 ( _: & Type3 ) { }
6365// CHECK: define{{.*}}4foo7{{.*}}!type ![[TYPE7:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
64- pub fn foo8 ( _: Type3 , _: Type3 ) { }
66+ pub fn foo8 ( _: & Type3 , _: & Type3 ) { }
6567// CHECK: define{{.*}}4foo8{{.*}}!type ![[TYPE8:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
66- pub fn foo9 ( _: Type3 , _: Type3 , _: Type3 ) { }
68+ pub fn foo9 ( _: & Type3 , _: & Type3 , _: & Type3 ) { }
6769// CHECK: define{{.*}}4foo9{{.*}}!type ![[TYPE9:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
68- pub fn foo10 ( _: Type4 ) { }
70+ pub fn foo10 ( _: & Type4 ) { }
6971// CHECK: define{{.*}}5foo10{{.*}}!type ![[TYPE10:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
70- pub fn foo11 ( _: Type4 , _: Type4 ) { }
72+ pub fn foo11 ( _: & Type4 , _: & Type4 ) { }
7173// CHECK: define{{.*}}5foo11{{.*}}!type ![[TYPE11:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
72- pub fn foo12 ( _: Type4 , _: Type4 , _: Type4 ) { }
74+ pub fn foo12 ( _: & Type4 , _: & Type4 , _: & Type4 ) { }
7375// CHECK: define{{.*}}5foo12{{.*}}!type ![[TYPE12:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
7476
75- // CHECK: ![[TYPE1]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NvNFNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo10{{[{}][{}]}}extern{{[}][}]}}3barE "}
76- // CHECK: ![[TYPE2]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NvNFNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo10{{[{}][{}]}}extern{{[}][}]}}3barS_E "}
77- // CHECK: ![[TYPE3]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NvNFNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo10{{[{}][{}]}}extern{{[}][}]}}3barS_S_E "}
78- // CHECK: ![[TYPE4]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooE "}
79- // CHECK: ![[TYPE5]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooS_E "}
80- // CHECK: ![[TYPE6]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooS_S_E "}
81- // CHECK: ![[TYPE7]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooE "}
82- // CHECK: ![[TYPE8]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooS_E "}
83- // CHECK: ![[TYPE9]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooS_S_E "}
84- // CHECK: ![[TYPE10]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barE "}
85- // CHECK: ![[TYPE11]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barS_E "}
86- // CHECK: ![[TYPE12]] = !{i64 0, !"_ZTSFvu {{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barS_S_E "}
77+ // CHECK: ![[TYPE1]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NvNFNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo10{{[{}][{}]}}extern{{[}][}]}}3barEE "}
78+ // CHECK: ![[TYPE2]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NvNFNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo10{{[{}][{}]}}extern{{[}][}]}}3barES0_E "}
79+ // CHECK: ![[TYPE3]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NvNFNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo10{{[{}][{}]}}extern{{[}][}]}}3barES0_S0_E "}
80+ // CHECK: ![[TYPE4]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooEE "}
81+ // CHECK: ![[TYPE5]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooES0_E "}
82+ // CHECK: ![[TYPE6]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooES0_S0_E "}
83+ // CHECK: ![[TYPE7]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooEE "}
84+ // CHECK: ![[TYPE8]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooES0_E "}
85+ // CHECK: ![[TYPE9]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooES0_S0_E "}
86+ // CHECK: ![[TYPE10]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barEE "}
87+ // CHECK: ![[TYPE11]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barES0_E "}
88+ // CHECK: ![[TYPE12]] = !{i64 0, !"_ZTSFvu3refIu {{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barES0_S0_E "}
0 commit comments