summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/AST/ASTContext.cpp12
-rw-r--r--clang/test/Sema/128bitfloat.cc13
2 files changed, 18 insertions, 7 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 870e09cc674..f91182b9bd5 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -859,12 +859,12 @@ TypedefDecl *ASTContext::getUInt128Decl() const {
TypeDecl *ASTContext::getFloat128StubType() const {
if (!Float128StubDecl) {
- Float128StubDecl = RecordDecl::Create(const_cast<ASTContext &>(*this),
- TTK_Struct,
- getTranslationUnitDecl(),
- SourceLocation(),
- SourceLocation(),
- &Idents.get("__float128"));
+ Float128StubDecl = CXXRecordDecl::Create(const_cast<ASTContext &>(*this),
+ TTK_Struct,
+ getTranslationUnitDecl(),
+ SourceLocation(),
+ SourceLocation(),
+ &Idents.get("__float128"));
}
return Float128StubDecl;
diff --git a/clang/test/Sema/128bitfloat.cc b/clang/test/Sema/128bitfloat.cc
index 077e61a51d4..cb76dac9600 100644
--- a/clang/test/Sema/128bitfloat.cc
+++ b/clang/test/Sema/128bitfloat.cc
@@ -2,12 +2,23 @@
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
#if !defined(__STRICT_ANSI__)
-__float128 f; // expected-error{{support for type '__float128' is not yet implemented}}
+__float128 f; // expected-error {{support for type '__float128' is not yet implemented}}
// But this should work:
template<typename> struct __is_floating_point_helper {};
template<> struct __is_floating_point_helper<__float128> {};
+
+// FIXME: This could have a better diag.
+void g(int x, __float128 *y) {
+ x + *y; // expected-error {{invalid operands to binary expression ('int' and '__float128')}}
+}
+
#else
__float128 f; // expected-error {{unknown type name '__float128'}}
template<typename> struct __is_floating_point_helper {};
template<> struct __is_floating_point_helper<__float128> {}; // expected-error {{use of undeclared identifier '__float128'}}
+
+void g(int x, __float128 *y) { // expected-error {{unknown type name '__float128'}}
+ x + *y;
+}
+
#endif
OpenPOWER on IntegriCloud