Mercurial > hg > CbC > CbC_llvm
comparison clang/test/SemaTemplate/instantiation-depth.cpp @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 1f2b6ac9f198 |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: %clang_cc1 -fsyntax-only -verify -ftemplate-depth 5 -ftemplate-backtrace-limit 4 %s | |
2 // RUN: %clang -fsyntax-only -Xclang -verify -ftemplate-depth-5 -ftemplate-backtrace-limit=4 %s | |
3 // RUN: %clang -fsyntax-only -Xclang -verify -ftemplate-depth=5 -ftemplate-backtrace-limit=4 %s | |
4 | |
5 #ifndef NOEXCEPT | |
6 | |
7 template<typename T> struct X : X<T*> { }; \ | |
8 // expected-error{{recursive template instantiation exceeded maximum depth of 5}} \ | |
9 // expected-note 3 {{instantiation of template class}} \ | |
10 // expected-note {{skipping 2 contexts in backtrace}} \ | |
11 // expected-note {{use -ftemplate-depth=N to increase recursive template instantiation depth}} | |
12 | |
13 void test() { | |
14 (void)sizeof(X<int>); // expected-note {{instantiation of template class}} | |
15 } | |
16 | |
17 #else | |
18 | |
19 // RUN: %clang_cc1 -fsyntax-only -verify -ftemplate-depth 5 -ftemplate-backtrace-limit 4 -std=c++11 -DNOEXCEPT %s | |
20 | |
21 template<typename T> struct S { | |
22 S() noexcept(noexcept(S<S>())); \ | |
23 // expected-error{{recursive template instantiation exceeded maximum depth of 5}} \ | |
24 // expected-note 3 {{in instantiation of exception spec}} \ | |
25 // expected-note {{skipping 2 contexts in backtrace}} \ | |
26 // expected-note {{use -ftemplate-depth=N to increase recursive template instantiation depth}} | |
27 }; | |
28 S<void> t; // expected-note {{in instantiation of exception spec}} | |
29 | |
30 #endif |