1# RUN: rm -rf %t && split-file %s %t 2; REQUIRES: default_triple 3; RUN: llvm-as < %t/hasCtor.ll > %t.bc 4; RUN: llvm-lto %t.bc -query-hasCtorDtor | FileCheck %s --check-prefixes=POSITIVE 5 6; RUN: llvm-as < %t/hasDtor.ll > %t.bc 7; RUN: llvm-lto %t.bc -query-hasCtorDtor | FileCheck %s --check-prefixes=POSITIVE 8 9; RUN: llvm-as < %t/hasBoth.ll > %t.bc 10; RUN: llvm-lto %t.bc -query-hasCtorDtor | FileCheck %s --check-prefixes=POSITIVE 11 12; RUN: llvm-as < %t/hasNone.ll > %t.bc 13; RUN: llvm-lto %t.bc -query-hasCtorDtor | FileCheck %s --check-prefixes=NEGATIVE 14 15; POSITIVE: .bc: hasCtorDtor = true 16; NEGATIVE: .bc: hasCtorDtor = false 17 18;--- hasCtor.ll 19@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @constructor, ptr null }] 20declare void @constructor() 21 22;--- hasDtor.ll 23@llvm.global_dtors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @destructor, ptr null }] 24declare void @destructor() 25 26;--- hasBoth.ll 27@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @constructor, ptr null }] 28@llvm.global_dtors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @destructor, ptr null }] 29declare void @constructor() 30declare void @destructor() 31 32;--- hasNone.ll 33declare void @foo() 34 35 36