xref: /llvm-project/clang/test/SemaCXX/PR20705.cpp (revision b3f6e3d6d64d77a9c840b8407b7e3c49b62b46dd)
1f98341eaSRichard Trieu // RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s
2f98341eaSRichard Trieu 
3f98341eaSRichard Trieu template <typename T>
4f98341eaSRichard Trieu struct X {};
__anonc70f135e0102() 5f98341eaSRichard Trieu auto b = []() {
6f98341eaSRichard Trieu   struct S {
7*b3f6e3d6SRichard Smith     static typename X<decltype(int)>::type Run(){}; // expected-error {{expected '('}}
8f98341eaSRichard Trieu   };
9f98341eaSRichard Trieu   return 5;
10f98341eaSRichard Trieu }();
11f98341eaSRichard Trieu 
12f98341eaSRichard Trieu template <typename T1, typename T2>
13f98341eaSRichard Trieu class PC {
14f98341eaSRichard Trieu };
15f98341eaSRichard Trieu 
16f98341eaSRichard Trieu template <typename T>
17f98341eaSRichard Trieu class P {
18*b3f6e3d6SRichard Smith   static typename PC<T, Invalid>::Type Foo(); // expected-error {{undeclared identifier 'Invalid'}}
19f98341eaSRichard Trieu };
20