1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --function-signature --prefix-filecheck-ir-name _ 2// RUN: %clang_cc1 -std=c++11 -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - | FileCheck %s 3 4// CHECK-LABEL: define {{[^@]+}}@_Z3fooi 5// CHECK-SAME: (i32 noundef [[A:%.*]]) #[[ATTR0:[0-9]+]] { 6// CHECK-NEXT: entry: 7// CHECK-NEXT: [[A_ADDR:%.*]] = alloca i32, align 4 8// CHECK-NEXT: [[_TMP0:%.*]] = alloca ptr, align 8 9// CHECK-NEXT: [[_TMP1:%.*]] = alloca ptr, align 8 10// CHECK-NEXT: [[REF_TMP:%.*]] = alloca i32, align 4 11// CHECK-NEXT: store i32 [[A]], ptr [[A_ADDR]], align 4 12// CHECK-NEXT: store ptr [[A_ADDR]], ptr [[_TMP0]], align 8 13// CHECK-NEXT: store i32 1, ptr [[REF_TMP]], align 4 14// CHECK-NEXT: store ptr [[REF_TMP]], ptr [[_TMP1]], align 8 15// CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[A_ADDR]], align 4 16// CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[_TMP1]], align 8 17// CHECK-NEXT: store i32 [[TMP0]], ptr [[TMP1]], align 4 18// CHECK-NEXT: ret void 19// 20void foo(int a) { 21 int &tmp0 = a; 22 int &&tmp1 = 1; 23 tmp1 = a; 24 return; 25} 26