[memprof] Remove an unused using directive (#117004)
[llvm-project.git] / lld / test / COFF / lto-late-personality.ll
blobf768f65f4521e409b3b305f2bd60330a4c4fc494
1 ; REQUIRES: x86
3 ;; A bitcode file can generate undefined references to symbols that weren't
4 ;; listed as undefined on the bitcode file itself, if there's a reference to
5 ;; an unexpected personality routine via asm(). If the personality function
6 ;; is provided as LTO bitcode, the linker would hit an unhandled state.
8 ; RUN: rm -rf %t.dir
9 ; RUN: split-file %s %t.dir
10 ; RUN: llvm-as %t.dir/main.ll -o %t.main.obj
11 ; RUN: llvm-as %t.dir/other.ll -o %t.other.obj
12 ; RUN: llvm-as %t.dir/personality.ll -o %t.personality.obj
13 ; RUN: llvm-ar rcs %t.personality.lib %t.personality.obj
15 ; RUN: env LLD_IN_TEST=1 not lld-link /entry:entry %t.main.obj %t.other.obj %t.personality.lib /out:%t.exe /subsystem:console /opt:lldlto=0 /debug:symtab 2>&1 | FileCheck %s
17 ; CHECK: error: LTO object file lto-late-personality.ll.tmp.personality.lib(lto-late-personality.ll.tmp.personality.obj) linked in after doing LTO compilation.
19 ;--- main.ll
20 target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
21 target triple = "x86_64-w64-windows-gnu"
23 define i32 @entry() {
24 entry:
25   tail call void @other()
26   tail call void asm sideeffect ".seh_handler __C_specific_handler, @except\0A", "~{dirflag},~{fpsr},~{flags}"()
27   ret i32 0
30 declare dso_local void @other()
32 ;--- other.ll
33 target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
34 target triple = "x86_64-w64-windows-gnu"
36 define dso_local void @other() {
37 entry:
38   ret void
41 ;--- personality.ll
42 target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
43 target triple = "x86_64-w64-windows-gnu"
45 define void @__C_specific_handler() {
46 entry:
47   ret void