mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-05-16 10:56:21 +00:00

Non-comprehensive list of cases: * Dumping template arguments; * Corresponding parameter contains a deduced type; * Template arguments are for a DeclRefExpr that hadMultipleCandidates() Type information is added in the form of prefixes (u8, u, U, L), suffixes (U, L, UL, LL, ULL) or explicit casts to printed integral template argument, if MSVC codeview mode is disabled. Differential revision: https://reviews.llvm.org/D77598
50 lines
709 B
C++
50 lines
709 B
C++
// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify
|
|
|
|
namespace PR10457 {
|
|
|
|
class string
|
|
{
|
|
string(const char* str, unsigned);
|
|
|
|
public:
|
|
template <unsigned N>
|
|
string(const char (&str)[N])
|
|
: string(str) {} // expected-error{{constructor for 'string<6U>' creates a delegation cycle}}
|
|
};
|
|
|
|
void f() {
|
|
string s("hello");
|
|
}
|
|
|
|
struct Foo {
|
|
Foo(int) { }
|
|
|
|
|
|
template <typename T>
|
|
Foo(T, int i) : Foo(i) { }
|
|
};
|
|
|
|
void test_Foo()
|
|
{
|
|
Foo f(1, 1);
|
|
}
|
|
}
|
|
|
|
namespace PR12890 {
|
|
class Document
|
|
{
|
|
public:
|
|
Document() = default;
|
|
|
|
template <class T>
|
|
explicit
|
|
Document(T&& t) : Document()
|
|
{
|
|
}
|
|
};
|
|
void f()
|
|
{
|
|
Document d(1);
|
|
}
|
|
}
|