aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorRamon de C Valle <rcvalle@users.noreply.github.com>2023-02-08 19:19:13 +0000
committerSami Tolvanen <samitolvanen@google.com>2023-02-08 22:24:19 +0000
commit71c7313f42d2b6063fea09854cf4fc46fd0627e1 (patch)
treedb2da594af53589f38665049dcac6b73d9d0bcf8 /clang/lib/Frontend/CompilerInvocation.cpp
parentcf73d3f07b5b0ff83a852dfdf8857500e86f9952 (diff)
downloadllvm-71c7313f42d2b6063fea09854cf4fc46fd0627e1.zip
llvm-71c7313f42d2b6063fea09854cf4fc46fd0627e1.tar.gz
llvm-71c7313f42d2b6063fea09854cf4fc46fd0627e1.tar.bz2
Add CFI integer types normalization
This commit adds a new option (i.e., `-fsanitize-cfi-icall-normalize-integers`) for normalizing integer types as vendor extended types for cross-language LLVM CFI/KCFI support with other languages that can't represent and encode C/C++ integer types. Specifically, integer types are encoded as their defined representations (e.g., 8-bit signed integer, 16-bit signed integer, 32-bit signed integer, ...) for compatibility with languages that define explicitly-sized integer types (e.g., i8, i16, i32, ..., in Rust). ``-fsanitize-cfi-icall-normalize-integers`` is compatible with ``-fsanitize-cfi-icall-generalize-pointers``. This helps with providing cross-language CFI support with the Rust compiler and is an alternative solution for the issue described and alternatives proposed in the RFC https://github.com/rust-lang/rfcs/pull/3296. For more information about LLVM CFI/KCFI and cross-language LLVM CFI/KCFI support for the Rust compiler, see the design document in the tracking issue https://github.com/rust-lang/rust/issues/89653. Relands b1e9ab7438a098a18fecda88fc87ef4ccadfcf1e with fixes. Reviewed By: pcc, samitolvanen Differential Revision: https://reviews.llvm.org/D139395
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions