71 lines · cpp
1// RUN: %clang_cc1 -std=c++1z -triple x86_64-apple-macosx10.7.0 -emit-llvm -o - %s -w | FileCheck %s2 3typedef int T;4void f() {5 // CHECK: %[[A:.*]] = alloca i32, align 46 // CHECK-NEXT: store i32 5, ptr %[[A]], align 47 // CHECK-NEXT: %[[B:.*]] = load i32, ptr %[[A]], align 48 // CHECK-NEXT: %[[C:.*]] = icmp slt i32 %[[B]], 89 if (int a = 5; a < 8)10 ;11}12 13void f1() {14 // CHECK: %[[A:.*]] = alloca i32, align 415 // CHECK-NEXT: %[[B:.*]] = alloca i32, align 416 // CHECK-NEXT: %[[C:.*]] = alloca i32, align 417 // CHECK-NEXT: store i32 5, ptr %[[B]], align 418 // CHECK-NEXT: store i32 7, ptr %[[C]], align 419 if (int a, b = 5; int c = 7)20 ;21}22 23int f2() {24 // CHECK: %[[A:.*]] = alloca i32, align 425 // CHECK-NEXT: %[[B:.*]] = call noundef i32 @_Z2f2v()26 // CHECK-NEXT: store i32 7, ptr %[[A]], align 427 // CHECK-NEXT: %[[C:.*]] = load i32, ptr %[[A]], align 428 // CHECK-NEXT: %[[D:.*]] = icmp ne i32 %[[C]], 029 if (T{f2()}; int c = 7)30 ;31 return 2;32}33 34void g() {35 // CHECK: %[[A:.*]] = alloca i32, align 436 // CHECK-NEXT: store i32 5, ptr %[[A]], align 437 // CHECK-NEXT: %[[B:.*]] = load i32, ptr %[[A]], align 438 // CHECK-NEXT: switch i32 %[[B]], label %[[C:.*]] [39 switch (int a = 5; a) {40 case 0:41 break;42 }43}44 45void g1() {46 // CHECK: %[[A:.*]] = alloca i32, align 447 // CHECK-NEXT: %[[B:.*]] = alloca i32, align 448 // CHECK-NEXT: %[[C:.*]] = alloca i32, align 449 // CHECK-NEXT: store i32 5, ptr %[[B]], align 450 // CHECK-NEXT: store i32 7, ptr %[[C]], align 451 // CHECK-NEXT: %[[D:.*]] = load i32, ptr %[[C]], align 452 // CHECK-NEXT: switch i32 %[[D]], label %[[E:.*]] [53 switch (int a, b = 5; int c = 7) {54 case 0:55 break;56 }57}58 59int g2() {60 // CHECK: %[[A:.*]] = alloca i32, align 461 // CHECK-NEXT: %[[B:.*]] = call noundef i32 @_Z2f2v()62 // CHECK-NEXT: store i32 7, ptr %[[A]], align 463 // CHECK-NEXT: %[[C:.*]] = load i32, ptr %[[A]], align 464 // CHECK-NEXT: switch i32 %[[C]], label %[[E:.*]] [65 switch (T{f2()}; int c = 7) {66 case 0:67 break;68 }69 return 2;70}71