brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 37a2bf9 Raw
52 lines · cpp
1// RUN: %clang_cc1 -std=c++23 -ast-print %s | FileCheck %s2 3template <template <class...> class C>4void test_auto_expr(long long y, auto &&z) {5  int x[] = {3, 4};6 7  // CHECK{LITERAL}: (int)(x[1])8  void(auto(x[1]));9  // CHECK{LITERAL}: (int){x[1]}10  void(auto{x[1]});11 12  // CHECK{LITERAL}: (int *)(x)13  void(auto(x));14  // CHECK{LITERAL}: (int *){x}15  void(auto{x});16 17  // CHECK{LITERAL}: auto(z)18  void(auto(z));19  // CHECK{LITERAL}: auto{z}20  void(auto{z});21 22  // CHECK{LITERAL}: new int *(x)23  void(new auto(x));24  // CHECK{LITERAL}: new int *{x}25  void(new auto{x});26 27  // CHECK{LITERAL}: new auto(z)28  void(new auto(z));29  // CHECK{LITERAL}: new auto{z}30  void(new auto{z});31 32  // CHECK{LITERAL}: new long long(y)33  void(new decltype(auto)(y));34  // CHECK{LITERAL}: new long long{y}35  void(new decltype(auto){y});36 37  // CHECK{LITERAL}: new decltype(auto)(z)38  void(new decltype(auto)(z));39  // CHECK{LITERAL}: new decltype(auto){z}40  void(new decltype(auto){z});41 42  // CHECK{LITERAL}: C(x, y, z)43  void(C(x, y, z));44  // CHECK{LITERAL}: C{x, y, z}45  void(C{x, y, z});46 47  // CHECK{LITERAL}: new C(x, y, z)48  void(new C(x, y, z));49  // CHECK{LITERAL}: new C{x, y, z}50  void(new C{x, y, z});51}52