brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.4 KiB · e466235 Raw
82 lines · cpp
1// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-pc-linux-gnu -std=c++11 | FileCheck %s2 3namespace std {4template <class T>5struct initializer_list {6  const T *Begin;7  __SIZE_TYPE__ Size;8 9  constexpr initializer_list(const T *B, __SIZE_TYPE__ S)10      : Begin(B), Size(S) {}11};12}13 14void f() {15  static std::initializer_list<std::initializer_list<int>> a{16      {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}};17  static std::initializer_list<std::initializer_list<int>> b{18      {0}, {0}, {0}, {0}};19  static std::initializer_list<std::initializer_list<int>> c{20      {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}};21  static std::initializer_list<std::initializer_list<int>> d{22      {0}, {0}, {0}, {0}, {0}};23  static std::initializer_list<std::initializer_list<int>> e{24      {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}};25}26 27// CHECK-DAG: @_ZZ1fvE1a = internal global %{{.*}} { ptr @_ZGRZ1fvE1a_, i64 14 }28// CHECK-DAG: @_ZGRZ1fvE1a0_ = internal constant [1 x i32] zeroinitializer29// CHECK-DAG: @_ZGRZ1fvE1a1_ = internal constant [1 x i32] zeroinitializer30// CHECK-DAG: @_ZGRZ1fvE1a2_ = internal constant [1 x i32] zeroinitializer31// CHECK-DAG: @_ZGRZ1fvE1a3_ = internal constant [1 x i32] zeroinitializer32// CHECK-DAG: @_ZGRZ1fvE1a4_ = internal constant [1 x i32] zeroinitializer33// CHECK-DAG: @_ZGRZ1fvE1a5_ = internal constant [1 x i32] zeroinitializer34// CHECK-DAG: @_ZGRZ1fvE1a6_ = internal constant [1 x i32] zeroinitializer35// CHECK-DAG: @_ZGRZ1fvE1a7_ = internal constant [1 x i32] zeroinitializer36// CHECK-DAG: @_ZGRZ1fvE1a8_ = internal constant [1 x i32] zeroinitializer37// CHECK-DAG: @_ZGRZ1fvE1a9_ = internal constant [1 x i32] zeroinitializer38// CHECK-DAG: @_ZGRZ1fvE1aA_ = internal constant [1 x i32] zeroinitializer39// CHECK-DAG: @_ZGRZ1fvE1aB_ = internal constant [1 x i32] zeroinitializer40// CHECK-DAG: @_ZGRZ1fvE1aC_ = internal constant [1 x i32] zeroinitializer41// CHECK-DAG: @_ZGRZ1fvE1aD_ = internal constant [1 x i32] zeroinitializer42// CHECK-DAG: @_ZGRZ1fvE1a_ = internal constant [14 x %{{.*}}] [%{{.*}} { ptr @_ZGRZ1fvE1a0_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a1_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a2_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a3_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a4_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a5_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a6_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a7_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a8_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1a9_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1aA_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1aB_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1aC_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1aD_, i64 1 }]43// CHECK-DAG: @_ZZ1fvE1b = internal global %{{.*}} { ptr44// CHECK-DAG: @_ZGRZ1fvE1b_, i64 4 }45// CHECK-DAG: @_ZGRZ1fvE1b0_ = internal constant [1 x i32] zeroinitializer46// CHECK-DAG: @_ZGRZ1fvE1b1_ = internal constant [1 x i32] zeroinitializer47// CHECK-DAG: @_ZGRZ1fvE1b2_ = internal constant [1 x i32] zeroinitializer48// CHECK-DAG: @_ZGRZ1fvE1b3_ = internal constant [1 x i32] zeroinitializer49// CHECK-DAG: @_ZGRZ1fvE1b_ = internal constant [4 x %{{.*}}] [%{{.*}} { ptr @_ZGRZ1fvE1b0_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1b1_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1b2_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1b3_, i64 1 }]50// CHECK-DAG: @_ZZ1fvE1c = internal global %{{.*}} { ptr51// CHECK-DAG: @_ZGRZ1fvE1c_, i64 9 }52// CHECK-DAG: @_ZGRZ1fvE1c0_ = internal constant [1 x i32] zeroinitializer53// CHECK-DAG: @_ZGRZ1fvE1c1_ = internal constant [1 x i32] zeroinitializer54// CHECK-DAG: @_ZGRZ1fvE1c2_ = internal constant [1 x i32] zeroinitializer55// CHECK-DAG: @_ZGRZ1fvE1c3_ = internal constant [1 x i32] zeroinitializer56// CHECK-DAG: @_ZGRZ1fvE1c4_ = internal constant [1 x i32] zeroinitializer57// CHECK-DAG: @_ZGRZ1fvE1c5_ = internal constant [1 x i32] zeroinitializer58// CHECK-DAG: @_ZGRZ1fvE1c6_ = internal constant [1 x i32] zeroinitializer59// CHECK-DAG: @_ZGRZ1fvE1c7_ = internal constant [1 x i32] zeroinitializer60// CHECK-DAG: @_ZGRZ1fvE1c8_ = internal constant [1 x i32] zeroinitializer61// CHECK-DAG: @_ZGRZ1fvE1c_ = internal constant [9 x %{{.*}}] [%{{.*}} { ptr @_ZGRZ1fvE1c0_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1c1_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1c2_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1c3_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1c4_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1c5_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1c6_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1c7_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1c8_, i64 1 }]62// CHECK-DAG: @_ZZ1fvE1d = internal global %{{.*}} { ptr @_ZGRZ1fvE1d_, i64 5 }63// CHECK-DAG: @_ZGRZ1fvE1d0_ = internal constant [1 x i32] zeroinitializer64// CHECK-DAG: @_ZGRZ1fvE1d1_ = internal constant [1 x i32] zeroinitializer65// CHECK-DAG: @_ZGRZ1fvE1d2_ = internal constant [1 x i32] zeroinitializer66// CHECK-DAG: @_ZGRZ1fvE1d3_ = internal constant [1 x i32] zeroinitializer67// CHECK-DAG: @_ZGRZ1fvE1d4_ = internal constant [1 x i32] zeroinitializer68// CHECK-DAG: @_ZGRZ1fvE1d_ = internal constant [5 x %{{.*}}] [%{{.*}} { ptr @_ZGRZ1fvE1d0_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1d1_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1d2_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1d3_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1d4_, i64 1 }]69// CHECK-DAG: @_ZZ1fvE1e = internal global %{{.*}} { ptr @_ZGRZ1fvE1e_, i64 11 }70// CHECK-DAG: @_ZGRZ1fvE1e0_ = internal constant [1 x i32] zeroinitializer71// CHECK-DAG: @_ZGRZ1fvE1e1_ = internal constant [1 x i32] zeroinitializer72// CHECK-DAG: @_ZGRZ1fvE1e2_ = internal constant [1 x i32] zeroinitializer73// CHECK-DAG: @_ZGRZ1fvE1e3_ = internal constant [1 x i32] zeroinitializer74// CHECK-DAG: @_ZGRZ1fvE1e4_ = internal constant [1 x i32] zeroinitializer75// CHECK-DAG: @_ZGRZ1fvE1e5_ = internal constant [1 x i32] zeroinitializer76// CHECK-DAG: @_ZGRZ1fvE1e6_ = internal constant [1 x i32] zeroinitializer77// CHECK-DAG: @_ZGRZ1fvE1e7_ = internal constant [1 x i32] zeroinitializer78// CHECK-DAG: @_ZGRZ1fvE1e8_ = internal constant [1 x i32] zeroinitializer79// CHECK-DAG: @_ZGRZ1fvE1e9_ = internal constant [1 x i32] zeroinitializer80// CHECK-DAG: @_ZGRZ1fvE1eA_ = internal constant [1 x i32] zeroinitializer81// CHECK-DAG: @_ZGRZ1fvE1e_ = internal constant [11 x %{{.*}}] [%{{.*}} { ptr @_ZGRZ1fvE1e0_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e1_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e2_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e3_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e4_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e5_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e6_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e7_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e8_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1e9_, i64 1 }, %{{.*}} { ptr @_ZGRZ1fvE1eA_, i64 1 }]82