1 // RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
4 // CHECK-NOT: @a = global i32
7 // CHECK-NOT: @_ZN3foo1bE = global i32
10 // CHECK: @_ZN3foo1cE = global i32
13 // CHECK-NOT: @_ZN3foo1dE
23 // CHECK: @test1_b = global
27 // CHECK: @_ZN5test13useE = global
35 // CHECK: @test2_b = global
41 static int unused_var;
42 static int unused_fn() { return 0; }
44 __attribute__((used)) static int internal_var;
45 __attribute__((used)) static int internal_fn() { return 0; }
47 __attribute__((used)) static int duplicate_internal_var;
48 __attribute__((used)) static int duplicate_internal_fn() { return 0; }
51 __attribute__((used)) static int duplicate_internal_var;
52 __attribute__((used)) static int duplicate_internal_fn() { return 0; }
55 // CHECK: @llvm.used = appending global {{.*}} @internal_var {{.*}} @internal_fn
58 // CHECK-NOT: @duplicate_internal
59 // CHECK: @internal_var = alias internal i32* @_Z12internal_var
61 // CHECK-NOT: @duplicate_internal
62 // CHECK: @internal_fn = alias internal i32 ()* @_Z11internal_fnv
64 // CHECK-NOT: @duplicate_internal