brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · e8b2309 Raw
60 lines · plain
1; Test that interposable symbols do not get put in comdats.2; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=3 -sanitizer-coverage-trace-pc-guard -mtriple x86_64-linux-gnu -S | FileCheck %s --check-prefixes=CHECK,ELF3; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=3 -sanitizer-coverage-trace-pc-guard -mtriple x86_64-windows-msvc -S | FileCheck %s --check-prefixes=CHECK,COFF4 5$WeakComdat = comdat any6 7define void @Vanilla() {8entry:9  ret void10}11 12define linkonce void @LinkOnce() {13entry:14  ret void15}16 17define weak void @Weak() {18entry:19  ret void20}21 22declare extern_weak void @ExternWeak()23 24define linkonce_odr void @LinkOnceOdr() {25entry:26  ret void27}28 29define weak_odr void @WeakOdr() {30entry:31  ret void32}33 34define weak void @WeakComdat() comdat {35entry:36  ret void37}38 39 40; CHECK:      $Vanilla = comdat nodeduplicate41; ELF:        $LinkOnceOdr = comdat nodeduplicate42; COFF:       $LinkOnceOdr = comdat any43; CHECK:      $WeakComdat = comdat any44; CHECK:      @__sancov_gen_ = private global [1 x i32] zeroinitializer, section {{.*}}, comdat($Vanilla), align 4{{$}}45; CHECK-NEXT: @__sancov_gen_.1 = private global [1 x i32] zeroinitializer, section {{.*}}, align 4{{$}}46; CHECK-NEXT: @__sancov_gen_.2 = private global [1 x i32] zeroinitializer, section {{.*}}, align 4{{$}}47; CHECK-NEXT: @__sancov_gen_.3 = private global [1 x i32] zeroinitializer, section {{.*}}, comdat($LinkOnceOdr), align 4{{$}}48; CHECK-NEXT: @__sancov_gen_.4 = private global [1 x i32] zeroinitializer, section {{.*}}, comdat($WeakOdr), align 4{{$}}49; CHECK-NEXT: @__sancov_gen_.5 = private global [1 x i32] zeroinitializer, section {{.*}}, comdat($WeakComdat), align 4{{$}}50 51; CHECK: define void @Vanilla() comdat {52; ELF:   define linkonce void @LinkOnce() comdat {53; ELF:   define weak void @Weak() comdat {54; COFF:  define linkonce void @LinkOnce() {55; COFF:  define weak void @Weak() {56; CHECK: declare extern_weak void @ExternWeak()57; CHECK: define linkonce_odr void @LinkOnceOdr() comdat {58; CHECK: define weak_odr void @WeakOdr() comdat {59; CHECK: define weak void @WeakComdat() comdat {60