[lld] [LLD] [COFF] Fix handling of comdat .drectve sections (PR #68116)
Martin Storsjö via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 3 10:15:09 PDT 2023
================
@@ -0,0 +1,31 @@
+# REQUIRES: x86
+
+# RUN: llvm-mc -triple=x86_64-windows-gnu %s -filetype=obj -o %t.obj
+
+# RUN: lld-link %t.obj -out:%t.exe -debug:symtab -subsystem:console
+# RUN: llvm-readobj --coff-exports %t.exe | FileCheck %s
+
+# CHECK: Name: exportedFunc
+
+## This assembly snippet has been reduced from what Clang generates from
+## this C snippet, with -fsanitize=address. Normally, the .drectve
+## section would be a regular section - but when compiled with
+## -fsanitize=address, it becomes a comdat section.
+##
+# void exportedFunc(void) {}
+# void mainCRTStartup(void) {}
+# static __attribute__((section(".drectve"), used)) const char export_chkstk[] =
+# "-export:exportedFunc";
+
+ .text
+ .globl exportedFunc
+exportedFunc:
+ retq
+
+ .globl mainCRTStartup
+mainCRTStartup:
+ retq
+
+ .section .drectve,"dr",one_only,export_chkstk
----------------
mstorsjo wrote:
It's tabs; the whitespace in the test file is exactly as the compiler output it - I've just stripped out parts of the compiler output but not rewritten the whitespace and all that.
https://github.com/llvm/llvm-project/pull/68116
More information about the llvm-commits
mailing list