forked from OSchip/llvm-project
35 lines
884 B
C++
35 lines
884 B
C++
// RUN: %clang_cc1 -std=c++98 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
|
|
// RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
|
|
// RUN: %clang_cc1 -std=c++14 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
|
|
// RUN: %clang_cc1 -std=c++1z %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
|
|
|
|
// expected-no-diagnostics
|
|
|
|
#if __cplusplus >= 201103L
|
|
namespace dr1756 { // dr1756: 3.7 c++11
|
|
// Direct-list-initialization of a non-class object
|
|
|
|
int a{0};
|
|
|
|
struct X { operator int(); } x;
|
|
int b{x};
|
|
} // dr1756
|
|
|
|
namespace dr1758 { // dr1758: 3.7 c++11
|
|
// Explicit conversion in copy/move list initialization
|
|
|
|
struct X { X(); };
|
|
struct Y { explicit operator X(); } y;
|
|
X x{y};
|
|
|
|
struct A {
|
|
A() {}
|
|
A(const A &) {}
|
|
};
|
|
struct B {
|
|
operator A() { return A(); }
|
|
} b;
|
|
A a{b};
|
|
} // dr1758
|
|
#endif
|