Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

Assertion `Parent->isHidden() && "unexpectedly hidden decl"' failed. #28749

Open Quuxplusone opened 8 years ago

Quuxplusone commented 8 years ago
Bugzilla Link PR28752
Status REOPENED
Importance P normal
Reported by Cristina Cristescu (biancacristinacristescu@gmail.com)
Reported on 2016-07-28 06:52:36 -0700
Last modified on 2016-10-28 06:35:02 -0700
Version trunk
Hardware PC Linux
CC aprantl@apple.com, benny.kra@gmail.com, biancacristinacristescu@gmail.com, dgregor@apple.com, llvm-bugs@lists.llvm.org, mren@apple.com, richard-llvm@metafoo.co.uk, vvasilev@cern.ch
Fixed by commit(s)
Attachments crash_repro.tar.gz (277454 bytes, application/gzip)
Reproducer28752.diff (2958 bytes, text/plain)
Blocks
Blocked by
See also
This is seen in the context of building ROOT & Cling with modules using
libstdc++.

The stack trace is the following:
clang-4.0:
/home/biancacr/root_GSOC/src/tools/clang/lib/Sema/SemaLookup.cpp:1342:
clang::Module* clang::Sema::getOwningModule(clang::Decl*): Assertion `Parent-
>isHidden() && "unexpectedly hidden decl"' failed.
#0 0x0000000001404378 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x1404378)
#1 0x000000000140234e llvm::sys::RunSignalHandlers()
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x140234e)
#2 0x00000000014024c4 SignalHandler(int)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x14024c4)
#3 0x00007ffa08cdcd10 __restore_rt (/lib/x86_64-linux-
gnu/libpthread.so.0+0x10d10)
#4 0x00007ffa07ac71c7 gsignal /build/glibc-qbmteM/glibc-
2.21/signal/../sysdeps/unix/sysv/linux/raise.c:55:0
#5 0x00007ffa07ac8e2a abort /build/glibc-qbmteM/glibc-2.21/stdlib/abort.c:91:0
#6 0x00007ffa07ac00bd __assert_fail_base /build/glibc-qbmteM/glibc-
2.21/assert/assert.c:92:0
#7 0x00007ffa07ac0172 (/lib/x86_64-linux-gnu/libc.so.6+0x2e172)
#8 0x0000000002402df3 clang::Sema::getOwningModule(clang::Decl*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x2402df3)
#9 0x000000000240bd57 clang::LookupResult::isVisibleSlow(clang::Sema&,
clang::NamedDecl*) (/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x240bd57)
#10 0x000000000240fc6d
clang::LookupResult::getAcceptableDecl(clang::NamedDecl*) const
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x240fc6d)
#11 0x000000000240fd6b LookupDirect(clang::Sema&, clang::LookupResult&,
clang::DeclContext const*) (/home/biancacr/root_GSOC/inst/bin/clang-
4.0+0x240fd6b)
#12 0x00000000024108d6 clang::Sema::LookupQualifiedName(clang::LookupResult&,
clang::DeclContext*, bool) [clone .part.1297]
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x24108d6)
#13 0x000000000233d87f
clang::Sema::BuildQualifiedDeclarationNameExpr(clang::CXXScopeSpec&,
clang::DeclarationNameInfo const&, bool, clang::Scope const*,
clang::TypeSourceInfo**) (/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x233d87f)
#14 0x00000000025a8f02 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDependentScopeDeclRefExpr(clang::DependentScopeDeclRefExpr*,
bool, clang::TypeSourceInfo**) (/home/biancacr/root_GSOC/inst/bin/clang-
4.0+0x25a8f02)
#15 0x00000000025a98ad clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDependentScopeDeclRefExpr(clang::DependentScopeDeclRefExpr*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25a98ad)
#16 0x000000000258bca7 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258bca7)
#17 0x00000000025b35f0 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformUnaryOperator(clang::UnaryOperator*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25b35f0)
#18 0x000000000258bf6b clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258bf6b)
#19 0x00000000025a4085 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc
const&, clang::TemplateArgumentLoc&, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25a4085)
#20 0x00000000025a7ad2 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc, clang::TemplateName)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25a7ad2)
#21 0x000000000259e0cd clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTSIInObjectScope(clang::TypeLoc,
clang::QualType, clang::NamedDecl*, clang::CXXScopeSpec&) [clone .isra.3469]
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x259e0cd)
#22 0x000000000259ea14 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformNestedNameSpecifierLoc(clang::NestedNameSpecifierLoc,
clang::QualType, clang::NamedDecl*) (/home/biancacr/root_GSOC/inst/bin/clang-
4.0+0x259ea14)
#23 0x00000000025ab9df clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDependentNameType(clang::TypeLocBuilder&,
clang::DependentNameTypeLoc) (/home/biancacr/root_GSOC/inst/bin/clang-
4.0+0x25ab9df)
#24 0x0000000002595989 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x2595989)
#25 0x00000000025b2502
clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName, clang::CXXRecordDecl*, unsigned int)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25b2502)
#26 0x00000000025bbb10
clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*,
llvm::SmallVectorImpl<clang::ParmVarDecl*>&)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25bbb10)
#27 0x00000000025ccee4
clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*, bool) (/home/biancacr/root_GSOC/inst/bin/clang-
4.0+0x25ccee4)
#28 0x00000000025c7db5 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25c7db5)
#29 0x000000000255b259
clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x255b259)
#30 0x000000000256729a
clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*,
clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>,
clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x256729a)
#31 0x000000000249fe52
clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*,
clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*,
clang::QualType, clang::Expr::Classification, llvm::ArrayRef<clang::Expr*>,
clang::OverloadCandidateSet&, bool, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x249fe52)
#32 0x00000000024b1a29 clang::Sema::BuildCallToMemberFunction(clang::Scope*,
clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation) (/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x24b1a29)
#33 0x0000000002343904 clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*,
clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>,
clang::SourceLocation, clang::Expr*, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x2343904)
#34 0x0000000002592157 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x2592157)
#35 0x000000000258bdb7 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258bdb7)
#36 0x000000000258d538 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258d538)
#37 0x000000000258cf18 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExprs(clang::Expr* const*, unsigned
int, bool, llvm::SmallVectorImpl<clang::Expr*>&, bool*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258cf18)
#38 0x000000000258e1b8 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformParenListExpr(clang::ParenListExpr*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258e1b8)
#39 0x000000000258c0ec clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258c0ec)
#40 0x000000000258d538 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258d538)
#41 0x000000000258d8c4 clang::Sema::SubstInitializer(clang::Expr*,
clang::MultiLevelTemplateArgumentList const&, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x258d8c4)
#42 0x00000000025c5cea
clang::Sema::InstantiateMemInitializers(clang::CXXConstructorDecl*,
clang::CXXConstructorDecl const*, clang::MultiLevelTemplateArgumentList const&)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25c5cea)
#43 0x00000000025cad32
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,
clang::FunctionDecl*, bool, bool, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25cad32)
#44 0x00000000025c9427 clang::Sema::PerformPendingInstantiations(bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x25c9427)
#45 0x0000000002174cd5 clang::Sema::ActOnEndOfTranslationUnit()
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x2174cd5)
#46 0x0000000001f5c7d5
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x1f5c7d5)
#47 0x0000000001f5390b clang::ParseAST(clang::Sema&, bool, bool)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x1f5390b)
#48 0x00000000018bedae clang::FrontendAction::Execute()
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x18bedae)
#49 0x0000000001893a56
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x1893a56)
#50 0x000000000194e6a2
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x194e6a2)
#51 0x00000000009c7558 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/home/biancacr/root_GSOC/inst/bin/clang-4.0+0x9c7558)
#52 0x00000000009995f6 main (/home/biancacr/root_GSOC/inst/bin/clang-
4.0+0x9995f6)
#53 0x00007ffa07ab2ac0 __libc_start_main /build/glibc-qbmteM/glibc-
2.21/csu/libc-start.c:323:0
#54 0x00000000009c35d9 _start (/home/biancacr/root_GSOC/inst/bin/clang-
4.0+0x9c35d9)
Stack dump:
Quuxplusone commented 8 years ago

Attached crash_repro.tar.gz (277454 bytes, application/gzip): The reproducer for this bug.

Quuxplusone commented 8 years ago

Attached Reproducer28752.diff (2958 bytes, text/plain): Reproducer as a Clang test.

Quuxplusone commented 7 years ago

Fixed in r283882.

Quuxplusone commented 7 years ago
r283882 with follow up r283887 were reverted in r283890, then reinstated in
r284008.
r284008 is again reverted in r284081.
Quuxplusone commented 7 years ago

Patch has been relanded with a couple of bug fixes as r284284.

Quuxplusone commented 7 years ago

Another fix was done in r284577. The bug should be fixed now.

Quuxplusone commented 7 years ago
I seems this issue reappears. It seems it is related to the reverted commit in
(r284382). "Revert "Reinstate r281429, reverted in r281452, with a fix for its
mishandling of"

This reverts commit r284176. It still marks some modules as invisible
that should be visible. Will follow up with the author with a test case.
"