[libcxx] r206805 - Use compiler intrinsic __is_constructible if available

Marshall Clow mclow.lists at gmail.com
Fri Apr 25 08:09:12 PDT 2014


On Apr 24, 2014, at 2:44 AM, İsmail Dönmez <ismail at donmez.ws> wrote:

> Hi,
> 
> 
> On Tue, Apr 22, 2014 at 1:30 AM, Marshall Clow <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?

Thanks!

— Marshall

> 
> 
> [  546s] FAILED: /home/abuild/rpmbuild/BUILD/llvm/stage1/bin/clang++   -DGTEST_HAS_RTTI=0 -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -fcolor-diagnostics -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -Iunittests/ADT -I../unittests/ADT -Iinclude -I../include -I../utils/unittest/googletest/include    -Wno-variadic-macros -fno-exceptions -fno-rtti -MMD -MT unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o -MF unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o.d -o unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o -c ../unittests/ADT/MakeUniqueTest.cpp
> [  546s] 0  clang-3.5       0x0000000000a76d95 llvm::sys::PrintStackTrace(_IO_FILE*) + 37
> [  546s] 1  clang-3.5       0x0000000000a77143
> [  546s] 2  libpthread.so.0 0x00007f6c564c0a10
> [  546s] 3  clang-3.5       0x00000000014c07ec clang::InitializationSequence::InitializeFrom(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, bool) + 92
> [  546s] 4  clang-3.5       0x00000000014c078d clang::InitializationSequence::InitializationSequence(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, bool) + 429
> [  546s] 5  clang-3.5       0x0000000001498516 clang::Sema::BuildTypeTrait(clang::TypeTrait, clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>, clang::SourceLocation) + 2550
> [  546s] 6  clang-3.5       0x00000000015c7803
> [  546s] 7  clang-3.5       0x00000000015ba688
> [  546s] 8  clang-3.5       0x00000000015bdcea
> [  546s] 9  clang-3.5       0x00000000015be918
> [  546s] 10 clang-3.5       0x00000000015b34a6
> [  546s] 11 clang-3.5       0x00000000015b1bcf
> [  546s] 12 clang-3.5       0x00000000015b6e29 clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&) + 809
> [  546s] 13 clang-3.5       0x00000000015b7516 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) + 758
> [  546s] 14 clang-3.5       0x00000000015b8e95 clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) + 1781
> [  546s] 15 clang-3.5       0x00000000015fd26e clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) + 734
> [  546s] 16 clang-3.5       0x00000000015fced0 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) + 16
> [  546s] 17 clang-3.5       0x0000000001307851 clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&, clang::DeclContext*) + 273
> [  546s] 18 clang-3.5       0x000000000143feee clang::Sema::BuildQualifiedDeclarationNameExpr(clang::CXXScopeSpec&, clang::DeclarationNameInfo const&, bool) + 62
> [  546s] 19 clang-3.5       0x00000000015c7c56
> [  546s] 20 clang-3.5       0x00000000015ba040
> [  546s] 21 clang-3.5       0x00000000015bdcea
> [  546s] 22 clang-3.5       0x00000000015be918
> [  546s] 23 clang-3.5       0x00000000015b34a6
> [  546s] 24 clang-3.5       0x00000000015b1bcf
> [  546s] 25 clang-3.5       0x00000000015b6e29 clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&) + 809
> [  546s] 26 clang-3.5       0x00000000015b7516 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) + 758
> [  546s] 27 clang-3.5       0x00000000015b8e95 clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) + 1781
> [  546s] 28 clang-3.5       0x00000000015fd26e clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) + 734
> [  546s] 29 clang-3.5       0x00000000015fced0 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::TypeDiagnoser&) + 16
> [  546s] 30 clang-3.5       0x0000000001307851 clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&, clang::DeclContext*) + 273
> [  546s] 31 clang-3.5       0x000000000143feee clang::Sema::BuildQualifiedDeclarationNameExpr(clang::CXXScopeSpec&, clang::DeclarationNameInfo const&, bool) + 62
> [  546s] 32 clang-3.5       0x00000000015c7c56
> [  546s] 33 clang-3.5       0x00000000015ba040
> [  546s] 34 clang-3.5       0x00000000015c6663
> [  546s] 35 clang-3.5       0x00000000015ba47b
> [  546s] 36 clang-3.5       0x00000000015b9ba1 clang::Sema::SubstExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) + 65
> [  546s] 37 clang-3.5       0x00000000015dacfc
> [  546s] 38 clang-3.5       0x00000000015da58b clang::Sema::InstantiateExceptionSpec(clang::SourceLocation, clang::FunctionDecl*) + 539
> [  546s] 39 clang-3.5       0x0000000001430129 clang::Sema::ResolveExceptionSpec(clang::SourceLocation, clang::FunctionProtoType const*) + 121
> [  546s] 40 clang-3.5       0x000000000144924e clang::Sema::MarkFunctionReferenced(clang::SourceLocation, clang::FunctionDecl*) + 1086
> [  546s] 41 clang-3.5       0x00000000013f56eb clang::Sema::BuildCXXConstructExpr(clang::SourceLocation, clang::QualType, clang::CXXConstructorDecl*, llvm::MutableArrayRef<clang::Expr*>, bool, bool, bool, unsigned int, clang::SourceRange) + 107
> [  546s] 42 clang-3.5       0x00000000014cb35f
> [  546s] 43 clang-3.5       0x00000000014c51a7 clang::InitializationSequence::Perform(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>, clang::QualType*) + 5687
> [  546s] 44 clang-3.5       0x0000000001491862 clang::Sema::BuildCXXNew(clang::SourceRange, bool, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::SourceRange, clang::QualType, clang::TypeSourceInfo*, clang::Expr*, clang::SourceRange, clang::Expr*, bool) + 6034
> [  546s] 45 clang-3.5       0x00000000015c1619
> [  546s] 46 clang-3.5       0x00000000015b9d90
> [  546s] 47 clang-3.5       0x00000000015babff
> [  546s] 48 clang-3.5       0x00000000015baed9
> [  546s] 49 clang-3.5       0x00000000015c1fc7
> [  546s] 50 clang-3.5       0x00000000015b9e3c
> [  546s] 51 clang-3.5       0x00000000015cb8dd
> [  546s] 52 clang-3.5       0x00000000015c7e81
> [  546s] 53 clang-3.5       0x00000000015b9791 clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&) + 65
> [  546s] 54 clang-3.5       0x00000000015db557 clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool) + 1863
> [  546s] 55 clang-3.5       0x00000000015dc4c1 clang::Sema::PerformPendingInstantiations(bool) + 433
> [  546s] 56 clang-3.5       0x00000000012f4e82 clang::Sema::ActOnEndOfTranslationUnit() + 498
> [  546s] 57 clang-3.5       0x000000000119b708 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 168
> [  546s] 58 clang-3.5       0x0000000001198c46 clang::ParseAST(clang::Sema&, bool, bool) + 454
> [  546s] 59 clang-3.5       0x0000000000ee9ab1 clang::CodeGenAction::ExecuteAction() + 65
> [  546s] 60 clang-3.5       0x0000000000bbb3f9 clang::FrontendAction::Execute() + 57
> [  546s] 61 clang-3.5       0x0000000000b924dd clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 829
> [  546s] 62 clang-3.5       0x0000000000c22e14 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3332
> [  546s] 63 clang-3.5       0x000000000063b01a cc1_main(char const**, char const**, char const*, void*) + 554
> [  546s] 64 clang-3.5       0x000000000063775e main + 1086
> [  546s] 65 libc.so.6       0x00007f6c556feb15 __libc_start_main + 245
> [  546s] 66 clang-3.5       0x00000000006371cf
> [  546s] Stack dump:
> [  546s] 0.	Program arguments: /home/abuild/rpmbuild/BUILD/llvm/stage1/bin/clang-3.5 -cc1 -triple x86_64-suse-linux -emit-obj -disable-free -disable-llvm-verifier -main-file-name MakeUniqueTest.cpp -mrelocation-model pic -pic-level 2 -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -momit-leaf-frame-pointer -g -ffunction-sections -fdata-sections -coverage-file /home/abuild/rpmbuild/BUILD/llvm/stage2/unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o -resource-dir /home/abuild/rpmbuild/BUILD/llvm/stage1/bin/../lib64/clang/3.5.0 -dependency-file unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o.d -MT unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o -D GTEST_HAS_RTTI=0 -D NDEBUG -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D NDEBUG -I unittests/ADT -I ../unittests/ADT -I include -I ../include -I ../utils/unittest/googletest/include -internal-isystem /usr/include/c++/v1 -internal-isystem /usr/local/include -internal-isystem /home/abuild/rpmbuild/BUILD/llvm/stage1/bin/../lib64/clang/3.5.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wno-variadic-macros -pedantic -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /home/abuild/rpmbuild/BUILD/llvm/stage2 -ferror-limit 19 -fmessage-length 0 -fvisibility-inlines-hidden -mstackrealign -fno-rtti -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o -x c++ ../unittests/ADT/MakeUniqueTest.cpp 
> [  546s] 1.	<eof> parser at end of file
> [  546s] 2.	../include/llvm/ADT/STLExtras.h:268:1: instantiating function definition 'make_unique'
> [  546s] clang-3.5: error: unable to execute command: Segmentation fault
> [  546s] clang-3.5: error: clang frontend command failed due to signal (use -v to see invocation)
> [  546s] clang version 3.5.0 (trunk 207088)
> [  546s] Target: x86_64-suse-linux
> [  546s] Thread model: posix
> [  546s] clang-3.5: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
> [  546s] clang-3.5: note: diagnostic msg: 
> [  546s] ********************
> [  546s] 
> [  546s] PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
> [  546s] Preprocessed source(s) and associated run script(s) are located at:
> [  546s] clang-3.5: note: diagnostic msg: /tmp/MakeUniqueTest-ff6298.cpp
> [  546s] clang-3.5: note: diagnostic msg: /tmp/MakeUniqueTest-ff6298.sh
> [  546s] clang-3.5: note: diagnostic msg: 
> [  546s] 
> [  546s] ********************
> [  549s] ninja: build stopped: subcommand failed.
> 
> 
>  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140425/a6c84a21/attachment.html>


More information about the cfe-commits mailing list