Bless codegen test
This commit is contained in:
parent
eae5031ecb
commit
ac7e836834
@ -4,7 +4,7 @@
|
||||
//@ needs-sanitizer-cfi
|
||||
//@ compile-flags: -Clto -Cno-prepopulate-passes -Copt-level=0 -Zsanitizer=cfi -Ctarget-feature=-crt-static
|
||||
|
||||
#![crate_type="lib"]
|
||||
#![crate_type = "lib"]
|
||||
#![feature(type_alias_impl_trait)]
|
||||
|
||||
extern crate core;
|
||||
@ -14,14 +14,15 @@ pub type Type2 = impl Send;
|
||||
pub type Type3 = impl Send;
|
||||
pub type Type4 = impl Send;
|
||||
|
||||
pub fn foo() where
|
||||
pub fn foo()
|
||||
where
|
||||
Type1: 'static,
|
||||
Type2: 'static,
|
||||
Type3: 'static,
|
||||
Type4: 'static,
|
||||
{
|
||||
// Type in extern path
|
||||
extern {
|
||||
extern "C" {
|
||||
fn bar();
|
||||
}
|
||||
let _: Type1 = bar;
|
||||
@ -35,43 +36,44 @@ pub fn foo() where
|
||||
// Type in const path
|
||||
const {
|
||||
pub struct Foo;
|
||||
fn bar() -> Type3 { Foo }
|
||||
fn bar() -> Type3 {
|
||||
Foo
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// Type in impl path
|
||||
struct Foo;
|
||||
impl Foo {
|
||||
fn bar(&self) { }
|
||||
fn bar(&self) {}
|
||||
}
|
||||
let _: Type4 = <Foo>::bar;
|
||||
}
|
||||
|
||||
// Force arguments to be passed by using a reference. Otherwise, they may end up PassMode::Ignore
|
||||
|
||||
pub fn foo1(_: &Type1) { }
|
||||
pub fn foo1(_: &Type1) {}
|
||||
// CHECK: define{{.*}}4foo1{{.*}}!type ![[TYPE1:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo2(_: &Type1, _: &Type1) { }
|
||||
pub fn foo2(_: &Type1, _: &Type1) {}
|
||||
// CHECK: define{{.*}}4foo2{{.*}}!type ![[TYPE2:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo3(_: &Type1, _: &Type1, _: &Type1) { }
|
||||
pub fn foo3(_: &Type1, _: &Type1, _: &Type1) {}
|
||||
// CHECK: define{{.*}}4foo3{{.*}}!type ![[TYPE3:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo4(_: &Type2) { }
|
||||
pub fn foo4(_: &Type2) {}
|
||||
// CHECK: define{{.*}}4foo4{{.*}}!type ![[TYPE4:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo5(_: &Type2, _: &Type2) { }
|
||||
pub fn foo5(_: &Type2, _: &Type2) {}
|
||||
// CHECK: define{{.*}}4foo5{{.*}}!type ![[TYPE5:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo6(_: &Type2, _: &Type2, _: &Type2) { }
|
||||
pub fn foo6(_: &Type2, _: &Type2, _: &Type2) {}
|
||||
// CHECK: define{{.*}}4foo6{{.*}}!type ![[TYPE6:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo7(_: &Type3) { }
|
||||
pub fn foo7(_: &Type3) {}
|
||||
// CHECK: define{{.*}}4foo7{{.*}}!type ![[TYPE7:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo8(_: &Type3, _: &Type3) { }
|
||||
pub fn foo8(_: &Type3, _: &Type3) {}
|
||||
// CHECK: define{{.*}}4foo8{{.*}}!type ![[TYPE8:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo9(_: &Type3, _: &Type3, _: &Type3) { }
|
||||
pub fn foo9(_: &Type3, _: &Type3, _: &Type3) {}
|
||||
// CHECK: define{{.*}}4foo9{{.*}}!type ![[TYPE9:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo10(_: &Type4) { }
|
||||
pub fn foo10(_: &Type4) {}
|
||||
// CHECK: define{{.*}}5foo10{{.*}}!type ![[TYPE10:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo11(_: &Type4, _: &Type4) { }
|
||||
pub fn foo11(_: &Type4, _: &Type4) {}
|
||||
// CHECK: define{{.*}}5foo11{{.*}}!type ![[TYPE11:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo12(_: &Type4, _: &Type4, _: &Type4) { }
|
||||
pub fn foo12(_: &Type4, _: &Type4, _: &Type4) {}
|
||||
// CHECK: define{{.*}}5foo12{{.*}}!type ![[TYPE12:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
|
||||
// CHECK: ![[TYPE1]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NvNFNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo10{{[{}][{}]}}extern{{[}][}]}}3barEE"}
|
||||
@ -80,9 +82,9 @@ pub fn foo12(_: &Type4, _: &Type4, _: &Type4) { }
|
||||
// CHECK: ![[TYPE4]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooEE"}
|
||||
// CHECK: ![[TYPE5]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooES0_E"}
|
||||
// CHECK: ![[TYPE6]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNCNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo11{{[{}][{}]}}closure{{[}][}]}}3FooES0_S0_E"}
|
||||
// CHECK: ![[TYPE7]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooEE"}
|
||||
// CHECK: ![[TYPE8]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooES0_E"}
|
||||
// CHECK: ![[TYPE9]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNkNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo12{{[{}][{}]}}constant{{[}][}]}}3FooES0_S0_E"}
|
||||
// CHECK: ![[TYPE7]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo3FooEE"}
|
||||
// CHECK: ![[TYPE8]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo3FooES0_E"}
|
||||
// CHECK: ![[TYPE9]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NtNvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo3FooES0_S0_E"}
|
||||
// CHECK: ![[TYPE10]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barEE"}
|
||||
// CHECK: ![[TYPE11]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barES0_E"}
|
||||
// CHECK: ![[TYPE12]] = !{i64 0, !"_ZTSFvu3refIu{{[0-9]+}}NvNINvC{{[[:print:]]+}}_{{[[:print:]]+}}3foo8{{[{}][{}]}}impl{{[}][}]}}3barES0_S0_E"}
|
||||
|
Loading…
x
Reference in New Issue
Block a user