CFI: Don't compress user-defined builtin types
Doesn't compress user-defined builtin types (see https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-builtin and https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-compression).
This commit is contained in:
parent
fc3800f657
commit
8f7b921f52
2 changed files with 39 additions and 3 deletions
|
@ -18,6 +18,13 @@ extern {
|
|||
#[repr(transparent)]
|
||||
pub struct Type3(i32);
|
||||
|
||||
#[cfi_encoding = "i"]
|
||||
pub struct Type4(i32);
|
||||
|
||||
#[cfi_encoding = "j"]
|
||||
#[repr(transparent)]
|
||||
pub struct Type5(u32);
|
||||
|
||||
pub fn foo0(_: Type1) { }
|
||||
// CHECK: define{{.*}}foo0{{.*}}!type ![[TYPE0:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo1(_: Type1, _: Type1) { }
|
||||
|
@ -36,6 +43,18 @@ pub fn foo7(_: *mut Type3, _: *mut Type3) { }
|
|||
// CHECK: define{{.*}}foo7{{.*}}!type ![[TYPE7:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo8(_: *mut Type3, _: *mut Type3, _: *mut Type3) { }
|
||||
// CHECK: define{{.*}}foo8{{.*}}!type ![[TYPE8:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo9(_: Type4) { }
|
||||
// CHECK: define{{.*}}foo9{{.*}}!type ![[TYPE9:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo10(_: Type4, _: Type4) { }
|
||||
// CHECK: define{{.*}}foo10{{.*}}!type ![[TYPE10:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo11(_: Type4, _: Type4, _: Type4) { }
|
||||
// CHECK: define{{.*}}foo11{{.*}}!type ![[TYPE11:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo12(_: Type5) { }
|
||||
// CHECK: define{{.*}}foo12{{.*}}!type ![[TYPE12:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo13(_: Type5, _: Type5) { }
|
||||
// CHECK: define{{.*}}foo13{{.*}}!type ![[TYPE13:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
pub fn foo14(_: Type5, _: Type5, _: Type5) { }
|
||||
// CHECK: define{{.*}}foo14{{.*}}!type ![[TYPE14:[0-9]+]] !type !{{[0-9]+}} !type !{{[0-9]+}} !type !{{[0-9]+}}
|
||||
|
||||
// CHECK: ![[TYPE0]] = !{i64 0, !"_ZTSFv3FooE"}
|
||||
// CHECK: ![[TYPE1]] = !{i64 0, !"_ZTSFv3FooS_E"}
|
||||
|
@ -46,3 +65,9 @@ pub fn foo8(_: *mut Type3, _: *mut Type3, _: *mut Type3) { }
|
|||
// CHECK: ![[TYPE6]] = !{i64 0, !"_ZTSFvP3BazE"}
|
||||
// CHECK: ![[TYPE7]] = !{i64 0, !"_ZTSFvP3BazS0_E"}
|
||||
// CHECK: ![[TYPE8]] = !{i64 0, !"_ZTSFvP3BazS0_S0_E"}
|
||||
// CHECK: ![[TYPE9]] = !{i64 0, !"_ZTSFviE"}
|
||||
// CHECK: ![[TYPE10]] = !{i64 0, !"_ZTSFviiE"}
|
||||
// CHECK: ![[TYPE11]] = !{i64 0, !"_ZTSFviiiE"}
|
||||
// CHECK: ![[TYPE12]] = !{i64 0, !"_ZTSFvjE"}
|
||||
// CHECK: ![[TYPE13]] = !{i64 0, !"_ZTSFvjjE"}
|
||||
// CHECK: ![[TYPE14]] = !{i64 0, !"_ZTSFvjjjE"}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue