brintos

brintos / llvm-project-archived public Read only

0
0
Text · 827 B · 201ab03 Raw
40 lines · cpp
1// RUN: %clang_cc1 %s -fsyntax-only -verify -std=c++112 3// Test reproduces a pair of crashes that were caused by code attempting4// to materialize a default constructor's exception specifier.5 6template <class T> struct A {7  static T tab[];8 9  const int M = UNDEFINED; // expected-error {{use of undeclared identifier}}10 11  int main()12  {13    A<char> a;14 15    return 0;16  }17};18 19template <class T> struct B {20  static T tab[];21 22  // expected-error@+1 {{invalid application of 'sizeof' to an incomplete type}}23  const int N = sizeof(B<char>::tab) / sizeof(char);24 25  int main()26  {27    B<char> b;28 29    return 0;30  }31};32 33// This test checks for a crash that resulted from us miscomputing the34// dependence of a nested initializer list.35template<int> struct X {36  static constexpr int n = 4;37  static constexpr int a[1][1] = {n};38};39 40