1 // RUN: %clang_cc1 -emit-llvm -triple x86_64-pc-linux-gnu %s -o - -std=c++11 | FileCheck %s
8 volatile int& refcall();
10 // CHECK: define{{.*}} void @_Z2f1PViPV1S
11 void f1(volatile int *x
, volatile S
* s
) {
12 // We should perform the load in these cases.
13 // CHECK: load volatile i32, i32*
15 // CHECK: load volatile i32, i32*
17 // CHECK: load volatile i32, i32*
19 // CHECK: load volatile i32, i32*
21 // CHECK: load volatile i32, i32*
23 // CHECK: load volatile i32, i32*
24 // CHECK: load volatile i32, i32*
27 // CHECK: load volatile i32, i32*
28 // CHECK: load volatile i32, i32*
29 // CHECK: load volatile i32, i32*
32 // CHECK: load volatile i32, i32*
35 // CHECK-NOT: load volatile
39 // CHECK: define{{.*}} void @_Z2f2PVi
40 // CHECK-NOT: load volatile
42 void f2(volatile int *x
) {
43 // We shouldn't perform the load in these cases.
48 // CHECK: define{{.*}} void @_Z2f3v()