mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 23:51:56 +00:00
2f649f3d7f
After a fatal error Sema::InstantiatingTemplate doesn't allow further instantiation and doesn't push a CodeSynthesisContext. When we tried to synthesize implicit deduction guides from constructors we hit the assertion > Assertion failed: (!CodeSynthesisContexts.empty() && "Cannot perform an instantiation without some context on the " "instantiation stack"), function SubstType, file clang/lib/Sema/SemaTemplateInstantiate.cpp, line 1580. Fix by avoiding deduction guide synthesis if InstantiatingTemplate is invalid. rdar://problem/39051732 Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D46446 llvm-svn: 332307
17 lines
390 B
C++
17 lines
390 B
C++
// RUN: not %clang_cc1 -std=c++17 -fsyntax-only -ferror-limit 1 %s 2>&1 | FileCheck %s
|
|
|
|
#error Error 1
|
|
#error Error 2
|
|
// CHECK: fatal error: too many errors emitted, stopping now
|
|
|
|
namespace rdar39051732 {
|
|
|
|
template<class T> struct A {
|
|
template <class U> A(T&, ...);
|
|
};
|
|
// Deduction guide triggers constructor instantiation.
|
|
template<class T> A(const T&, const T&) -> A<T&>;
|
|
|
|
}
|
|
|