On Thu, Jun 20, 2013 at 4:43 PM, Richard Smith <[email protected]>wrote:
> On Thu, Jun 20, 2013 at 4:30 PM, Nico Weber <[email protected]> wrote: > > Author: nico > > Date: Thu Jun 20 18:30:30 2013 > > New Revision: 184498 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=184498&view=rev > > Log: > > Fix a crash with __flaot128 noticed by Eli. > > > > > > Modified: > > cfe/trunk/lib/AST/ASTContext.cpp > > cfe/trunk/test/Sema/128bitfloat.cc > > > > Modified: cfe/trunk/lib/AST/ASTContext.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=184498&r1=184497&r2=184498&view=diff > > > ============================================================================== > > --- cfe/trunk/lib/AST/ASTContext.cpp (original) > > +++ cfe/trunk/lib/AST/ASTContext.cpp Thu Jun 20 18:30:30 2013 > > @@ -859,12 +859,12 @@ TypedefDecl *ASTContext::getUInt128Decl( > > > > 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")); > > Maybe assert getLangOpts().CPlusPlus before creating a CXXRecordDecl? > Sure, why not :-) r184516. > > > } > > > > return Float128StubDecl; > > > > Modified: cfe/trunk/test/Sema/128bitfloat.cc > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/128bitfloat.cc?rev=184498&r1=184497&r2=184498&view=diff > > > ============================================================================== > > --- cfe/trunk/test/Sema/128bitfloat.cc (original) > > +++ cfe/trunk/test/Sema/128bitfloat.cc Thu Jun 20 18:30:30 2013 > > @@ -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 > > > > > > _______________________________________________ > > cfe-commits mailing list > > [email protected] > > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
