Displaying 3 results from an estimated 3 matches for "_ztsfve".
Did you mean:
_ztsfive
2017 May 16
2
[RFC] CFI for indirect calls with ThinLTO
...ule.
Indirect call targets can be represented in the following way using
named metadata:
void foo() {}
int bar() { return 0; }
# Merged module
!cfi.functions = !{!1, !3}
!1 = !{!"bar", i8 0, !2}
!2 = !{i64 0, !"_ZTSFiE"}
!3 = !{!"foo", i8 0, !4}
!4 = !{i64 0, !"_ZTSFvE"}
Each function is described by a tuple of
* Promoted name as a string
* Linkage (see below)
* Type(s)
A function can have multiple types. In the Cross-DSO mode each
function has a second “external” numeric type, and we might want to
allow “relaxed” type checking in the future where a funct...
2017 May 16
2
[RFC] CFI for indirect calls with ThinLTO
...:
>>
>> void foo() {}
>> int bar() { return 0; }
>>
>> # Merged module
>> !cfi.functions = !{!1, !3}
>> !1 = !{!"bar", i8 0, !2}
>> !2 = !{i64 0, !"_ZTSFiE"}
>> !3 = !{!"foo", i8 0, !4}
>> !4 = !{i64 0, !"_ZTSFvE"}
>
>
> Presumably there would be no entries in !cfi.functions for functions defined
> in the merged module, as the type metadata would come from the module
> itself.
Right. The same as with vtable CFI, LowerTypeTests will use
!cfi.functions in addition to the regular logic.
&...
2017 May 24
2
[RFC] CFI for indirect calls with ThinLTO
...; }
> >>>
> >>> # Merged module
> >>> !cfi.functions = !{!1, !3}
> >>> !1 = !{!"bar", i8 0, !2}
> >>> !2 = !{i64 0, !"_ZTSFiE"}
> >>> !3 = !{!"foo", i8 0, !4}
> >>> !4 = !{i64 0, !"_ZTSFvE"}
> >>
> >>
> >> Presumably there would be no entries in !cfi.functions for functions
> defined
> >> in the merged module, as the type metadata would come from the module
> >> itself.
> >
> > Right. The same as with vtable CFI, LowerT...