brintos

brintos / llvm-project-archived public Read only

0
0
Text · 912 B · 2516a52 Raw
40 lines · cpp
1// RUN: %clang_cc1 -verify %s2 3// FIXME: We could in principle support cases like this (particularly, cases4// where the statement-expression contains no labels).5template <typename... T> void f1() {6  int arr[] = {7    ({8      T(); // expected-error {{unexpanded parameter pack}}9    }) ... // expected-error {{does not contain any unexpanded parameter packs}}10  };11}12 13// FIXME: The error for this isn't ideal; it'd be preferable to say that pack14// expansion of a statement expression is not permitted.15template <typename... T> void f2() {16  [] {17    int arr[] = {18      T() + ({19      foo:20        T t; // expected-error {{unexpanded parameter pack}}21        goto foo;22        0;23      }) ...24    };25  };26}27 28template <typename... T> void f3() {29  ({30    int arr[] = {31      [] {32      foo:33        T t; // OK, expanded within compound statement34        goto foo;35        return 0;36      } ...37    };38  });39}40