- Runtime diagnostic data for cfi-icall changed to match the rest of cfi checks
- Layout of all CFI diagnostic data changed to put Kind at the beginning. There is no ABI stability promise yet.
- call cfi_slowpath_diag instead of cfi_slowpath when needed.
- emit __cfi_check_fail function, which dispatches a CFI check faliure according to trap/recover settings of the current module.
- a tiny driver change to match the way the new handlers are done in compiler-rt.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/CodeGen/CGExpr.cpp | ||
---|---|---|
2620 | This looks like CodeGenFunction::EmitTrapCheck. | |
2654–2678 | Can't you replace all this code with a call to EmitCheck passing icmps for each of the check kinds? Sure, it wouldn't be a switch, but we don't care about the performance of this code anyway. | |
lib/CodeGen/CodeGenFunction.h | ||
1386 | No need to rename, these are still all type checks. | |
test/CodeGen/cfi-icall-cross-dso.c | ||
28 | Are you still testing the __cfi_slowpath code path? |
test/CodeGen/cfi-check-fail.c | ||
---|---|---|
19 | Right. |
This looks like CodeGenFunction::EmitTrapCheck.