From c2e5c4feed32c808591b5278f680bbabe63eb225 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 5 Jan 2022 18:04:21 -0800 Subject: x86: Generate INT3 for __builtin_eh_return Generate INT3 after indirect jmp in exception return for -fcf-protection with -mharden-sls=indirect-jmp. gcc/ PR target/103925 * config/i386/i386.c (ix86_output_indirect_function_return): Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp. gcc/testsuite/ PR target/103925 * gcc.target/i386/harden-sls-6.c: New test. --- gcc/config/i386/i386.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gcc/config') diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 7365775..c4ed82d 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -16382,11 +16382,14 @@ ix86_output_indirect_function_return (rtx ret_op) } else output_indirect_thunk (regno); - - return ""; } else - return "%!jmp\t%A0"; + { + output_asm_insn ("%!jmp\t%A0", &ret_op); + if (ix86_harden_sls & harden_sls_indirect_jmp) + fputs ("\tint3\n", asm_out_file); + } + return ""; } /* Output the assembly for a call instruction. */ -- cgit v1.1