r184498 - Fix a crash with __flaot128 noticed by Eli.
Nico Weber
thakis at chromium.org
Thu Jun 20 18:31:02 PDT 2013
On Thu, Jun 20, 2013 at 4:43 PM, Richard Smith <richard at metafoo.co.uk>wrote:
> On Thu, Jun 20, 2013 at 4:30 PM, Nico Weber <nicolasweber at gmx.de> 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
> > cfe-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130620/997dd428/attachment.html>
More information about the cfe-commits
mailing list