]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGenCXX/static-init-pnacl.cpp
Vendor import of clang trunk r238337:
[FreeBSD/FreeBSD.git] / test / CodeGenCXX / static-init-pnacl.cpp
1 // RUN: %clang_cc1 -emit-llvm -triple=le32-unknown-nacl -o - %s | FileCheck %s
2
3 int f();
4
5 // Test that PNaCl uses the Itanium/x86 ABI in which the static
6 // variable's guard variable is tested via "load i8 and compare with
7 // zero" rather than the ARM ABI which uses "load i32 and test the
8 // bottom bit".
9 void g() {
10   static int a = f();
11 }
12 // CHECK: [[LOAD:%.*]] = load atomic i8, i8* bitcast (i64* @_ZGVZ1gvE1a to i8*) acquire
13 // CHECK-NEXT: [[GUARD:%.*]] = icmp eq i8 [[LOAD]], 0
14 // CHECK-NEXT: br i1 [[GUARD]]