[libcxx] r206805 - Use compiler intrinsic __is_constructible if available

Alp Toker alp at nuanti.com
Thu Jul 17 07:34:34 PDT 2014


On 17/07/2014 16:29, İsmail Dönmez wrote:
> Hi,
>
> Just tried trunk and its still broken wrt. __is_constructible

The reduced test case doesn't include uses of __is_constructable or any 
other type trait primitive.

I can confirm though that it does crash somewhere in parameter pack 
handling, which is used to pass types to the built-in:


Assertion failed: (Replacement.isCanonical() && "replacement types must 
always be canonical"), function getSubstTemplateTypeParmType, file 
/Users/alp/Projects/llvm-work/upstream/clang/lib/AST/ASTContext.cpp, 
line 3040.
6  libclangAST.dylib          0x000000010ee7d210 
clang::ASTContext::getSubstTemplateTypeParmPackType(clang::TemplateTypeParmType 
const*, clang::TemplateArgument const&) + 0
7  libclangSema.dylib         0x000000010e9b1dab 
clang::TreeTransform<(anonymous 
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, 
clang::TypeLoc) + 6595
8  libclangSema.dylib         0x000000010e9b0144 
clang::TreeTransform<(anonymous 
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) 
+ 200
9  libclangSema.dylib         0x000000010e9bc053 
clang::TreeTransform<(anonymous 
namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc 
const&, clang::TemplateArgumentLoc&) + 119



>
> ismail
>
>
>
> On Tue, Apr 29, 2014 at 3:51 PM, İsmail Dönmez <ismail at donmez.ws 
> <mailto:ismail at donmez.ws>> wrote:
>
>     Hi,
>
>     Attached is a testcase with unrelated errors in it. I am still
>     trying to reduce a non-error version but if this one works cool.
>
>     Get latest libcxx and compile with clang++ -std=c++11 -c testcase.ii
>
>
>
>     On Fri, Apr 25, 2014 at 9:49 PM, Richard Smith <metafoo at gmail.com
>     <mailto:metafoo at gmail.com>> wrote:
>
>         Any chance you could produce a reduced testcase and file a bug
>         against Clang? =)
>
>
>         On Fri Apr 25 2014 at 11:37:56 AM, İsmail Dönmez
>         <ismail at donmez.ws <mailto:ismail at donmez.ws>> wrote:
>
>             Hi,
>
>
>             On Fri, Apr 25, 2014 at 6:09 PM, Marshall Clow
>             <mclow.lists at gmail.com <mailto:mclow.lists at gmail.com>> wrote:
>
>
>                 On Apr 24, 2014, at 2:44 AM, İsmail Dönmez
>                 <ismail at donmez.ws <mailto:ismail at donmez.ws>> wrote:
>
>>                 Hi,
>>
>>
>>                 On Tue, Apr 22, 2014 at 1:30 AM, Marshall Clow
>>                 <mclow.lists at gmail.com
>>                 <mailto:mclow.lists at gmail.com>> wrote:
>>
>>                     Author: marshall
>>                     Date: Mon Apr 21 17:30:32 2014
>>                     New Revision: 206805
>>
>>                     URL:
>>                     http://llvm.org/viewvc/llvm-project?rev=206805&view=rev
>>                     Log:
>>                     Use compiler intrinsic __is_constructible if
>>                     available
>>
>>                     Modified:
>>                     libcxx/trunk/include/type_traits
>>
>>
>>                 This breaks the llvm compilation (in stage2 hence
>>                 clang is the compiler here) for me on Linux/x86-64:
>
>                 Sorry; was in meetings all day yesterday.
>                 Looks like a bug in the __is_constructible code in clang.
>
>                 As a workaround (and a check to make sure that’s what
>                 it is), would you please change (in type_traits)
>
>                 #if __has_feature(is_constructible)
>                 to
>                 #if 0
>
>                 and let me know if that fixes the crash?
>
>
>             This indeed fixes the crash.
>
>             Regards.
>
>
>             _______________________________________________
>             cfe-commits mailing list
>             cfe-commits at cs.uiuc.edu <mailto: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

-- 
http://www.nuanti.com
the browser experts




More information about the cfe-commits mailing list