brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 7604541 Raw
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