Author: Sami Tolvanen Date: 2023-02-16T00:21:31Z New Revision: a851d46e07c1234a0763b4630c8475c73208e776
URL: https://github.com/llvm/llvm-project/commit/a851d46e07c1234a0763b4630c8475c73208e776 DIFF: https://github.com/llvm/llvm-project/commit/a851d46e07c1234a0763b4630c8475c73208e776.diff LOG: [Clang][Driver] Fix integer normalization with KCFI Commit 71c7313f42d2b6063fea09854cf4fc46fd0627e1 added integer normalization for CFI, but doesn't correctly pass the argument with -fsanitize=kcfi. Set CfiICallNormalizeIntegers also with SanitizerKind::KCFI to fix the issue. Added: Modified: clang/lib/Driver/SanitizerArgs.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 7f7ad238c89f4..390faef0dbdf1 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -726,8 +726,11 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, options::OPT_fno_sanitize_cfi_canonical_jump_tables, true); } - if (AllAddedKinds & SanitizerKind::KCFI && DiagnoseErrors) { - if (AllAddedKinds & SanitizerKind::CFI) + if (AllAddedKinds & SanitizerKind::KCFI) { + CfiICallNormalizeIntegers = + Args.hasArg(options::OPT_fsanitize_cfi_icall_normalize_integers); + + if (AllAddedKinds & SanitizerKind::CFI && DiagnoseErrors) D.Diag(diag::err_drv_argument_not_allowed_with) << "-fsanitize=kcfi" << lastArgumentForMask(D, Args, SanitizerKind::CFI); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits