[libcxx] r206805 - Use compiler intrinsic __is_constructible if available
Logan Chien
tzuhsiang.chien at gmail.com
Thu Jul 17 10:47:32 PDT 2014
Hi,
FYI, from the backtrace, it seems that this is related to:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140707/109506.html
It seems that the types after the packed parameters are not canonicalized
in some cases.
I am working on this (my patch is incorrect at the moment), but haven't got
a correct solution yet.
Sincerely,
Logan
On Thu, Jul 17, 2014 at 10:34 PM, Alp Toker <alp at nuanti.com> wrote:
>
> 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
>
>
> _______________________________________________
> 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/20140718/63c743d0/attachment.html>
More information about the cfe-commits
mailing list