This patch corresponds to reviews: http://reviews.llvm.org/D15120 http://reviews.llvm.org/D19125 It adds support for the __float128 keyword, literals and target feature to enable it. Based on the latter of the two aforementioned reviews, this feature is enabled on Linux on i386/X86 as well as SystemZ. This is also the second attempt in commiting this feature. The first attempt did not enable it on required platforms which caused failures when compiling type_traits with -std=gnu++11. If you see failures with compiling this header on your platform after this commit, it is likely that your platform needs to have this feature enabled. llvm-svn: 268898
20 lines
834 B
C++
20 lines
834 B
C++
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
|
|
|
|
struct PR10757 {
|
|
bool operator~() = delete; // expected-note {{explicitly deleted}}
|
|
bool operator==(const PR10757&) = delete; // expected-note {{explicitly deleted}}
|
|
operator float();
|
|
};
|
|
int PR10757f() {
|
|
PR10757 a1;
|
|
// FIXME: We get a ridiculous number of "built-in candidate" notes here...
|
|
if(~a1) {} // expected-error {{overload resolution selected deleted operator}} expected-note 8 {{built-in candidate}}
|
|
if(a1==a1) {} // expected-error {{overload resolution selected deleted operator}} expected-note 144 {{built-in candidate}}
|
|
}
|
|
|
|
struct DelOpDel {
|
|
// FIXME: In MS ABI, we error twice below.
|
|
virtual ~DelOpDel() {} // expected-error 1-2 {{attempt to use a deleted function}}
|
|
void operator delete(void*) = delete; // expected-note 1-2 {{deleted here}}
|
|
};
|