On Thu, Jun 20, 2013 at 2:29 PM, Eli Friedman <[email protected]>wrote:
> On Thu, Jun 20, 2013 at 2:25 PM, Nico Weber <[email protected]> wrote: > >> Thanks for the quick review! >> >> On Thu, Jun 20, 2013 at 2:02 PM, Eli Friedman <[email protected]>wrote: >> >>> On Thu, Jun 20, 2013 at 1:45 PM, Nico Weber <[email protected]>wrote: >>> >>>> Hi, >>>> >>>> the attached patch lazily inserts a __float128 type the first time one >>>> is looked up. This is needed to compile libstdc++4.7+ headers in >>>> -std=gnu++11 mode. This fixes PR13530, see that bug for more information. >>>> >>>> Ok? >>>> >>> >>> Is there any particular reason you're checking for GNUMode? >>> >> >> Yes, type_traits only adds __is_floating_pointer_helper<__float128> if >> __STRICT_ANSI__ isn't defined. InitPreprocessor.cpp defines this exactly if >> !GNUMode. I changed the test to check for __STRICT_ANSI__ to maybe make >> this a bit clearer. >> >> >>> "variable has incomplete type '__float128'" is a terrible error message >>> if someone actually tries to use __float128 with clang. Can we do better? >>> >> >> We can, attached. >> >> >> > Not sure if this catches all cases, but it's probably good enough. > > Otherwise, looks fine. > r184476, thanks! I looked through a few diags in DiagnosticSemaKind mentioning "incomplete type", and the ones I checked all go through RequireCompleteType (I checked err_incomplete_type err_typecheck_decl_incomplete_type err_invalid_incomplete_type_use err_bad_dynamic_cast_incomplete err_incomplete_typeid err_new_incomplete_type warn_delete_incomplete err_catch_incomplete_ptr err_catch_incomplete_ref err_throw_incomplete err_throw_incomplete_ptr err_incomplete_object_call) > > -Eli > >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
