[compiler-rt] [compiler-rt] Fix interceptors with BTI and PAC (PR #84061)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 5 11:55:49 PST 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 17162b61c2e6968482fab928f89bdca8b4ac06d9 b45b55f260fa4522ec9f2a43d6adbf1fcd8973cc -- compiler-rt/lib/interception/interception.h compiler-rt/lib/sanitizer_common/sanitizer_asm.h
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/compiler-rt/lib/interception/interception.h b/compiler-rt/lib/interception/interception.h
index 5a8fb24a9c..3317a98876 100644
--- a/compiler-rt/lib/interception/interception.h
+++ b/compiler-rt/lib/interception/interception.h
@@ -191,12 +191,12 @@ const interpose_substitution substitution_##func_name[] \
# define ASM_TYPE_FUNCTION_STR "@function"
# endif
// Keep trampoline implementation in sync with sanitizer_common/sanitizer_asm.h
-# define DECLARE_WRAPPER(ret_type, func, ...) \
- extern "C" ret_type func(__VA_ARGS__); \
- extern "C" ret_type TRAMPOLINE(func)(__VA_ARGS__); \
- extern "C" ret_type __interceptor_##func(__VA_ARGS__) \
- INTERCEPTOR_ATTRIBUTE __attribute__((weak)) ALIAS(WRAP(func)); \
- asm( \
+# define DECLARE_WRAPPER(ret_type, func, ...) \
+ extern "C" ret_type func(__VA_ARGS__); \
+ extern "C" ret_type TRAMPOLINE(func)(__VA_ARGS__); \
+ extern "C" ret_type __interceptor_##func(__VA_ARGS__) \
+ INTERCEPTOR_ATTRIBUTE __attribute__((weak)) ALIAS(WRAP(func)); \
+ asm( \
".text\n" \
__ASM_WEAK_WRAPPER(func) \
".set " #func ", " SANITIZER_STRINGIFY(TRAMPOLINE(func)) "\n" \
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_asm.h b/compiler-rt/lib/sanitizer_common/sanitizer_asm.h
index bd4421b199..eedd72bdf6 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_asm.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_asm.h
@@ -43,9 +43,9 @@
#endif
#if defined(__aarch64__)
-# define ASM_PAC_STARTPROC paciasp
+# define ASM_PAC_STARTPROC paciasp
#else
-# define ASM_PAC_STARTPROC
+# define ASM_PAC_STARTPROC
#endif
#if defined(__x86_64__) || defined(__i386__) || defined(__sparc__)
@@ -114,18 +114,17 @@
# define ASM_TRAMPOLINE_ALIAS(symbol, name) \
.weak symbol; \
.set symbol, __interceptor_trampoline_##name
-# define ASM_INTERCEPTOR_TRAMPOLINE(name) \
- .weak __interceptor_##name; \
- .set __interceptor_##name, ASM_WRAPPER_NAME(name); \
- .globl __interceptor_trampoline_##name; \
- ASM_TYPE_FUNCTION(__interceptor_trampoline_##name); \
- __interceptor_trampoline_##name: \
- CFI_STARTPROC; \
- ASM_PAC_STARTPROC; \
- ASM_TAIL_CALL ASM_PREEMPTIBLE_SYM(__interceptor_##name); \
- CFI_ENDPROC; \
- ASM_SIZE(__interceptor_trampoline_##name)
-# define ASM_INTERCEPTOR_TRAMPOLINE_SUPPORT 1
+# define ASM_INTERCEPTOR_TRAMPOLINE(name) \
+ .weak __interceptor_##name; \
+ .set __interceptor_##name, ASM_WRAPPER_NAME(name); \
+ .globl __interceptor_trampoline_##name; \
+ ASM_TYPE_FUNCTION(__interceptor_trampoline_##name); \
+ __interceptor_trampoline_##name : CFI_STARTPROC; \
+ ASM_PAC_STARTPROC; \
+ ASM_TAIL_CALL ASM_PREEMPTIBLE_SYM(__interceptor_##name); \
+ CFI_ENDPROC; \
+ ASM_SIZE(__interceptor_trampoline_##name)
+# define ASM_INTERCEPTOR_TRAMPOLINE_SUPPORT 1
# endif // Architecture supports interceptor trampoline
#else
# define ASM_HIDDEN(symbol)
``````````
</details>
https://github.com/llvm/llvm-project/pull/84061
More information about the llvm-commits
mailing list