https://llvm.org/bugs/show_bug.cgi?id=29097
Bug ID: 29097 Summary: r279314 broke modules selfhost Product: clang Version: trunk Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Modules Assignee: unassignedclangb...@nondot.org Reporter: richard-l...@metafoo.co.uk CC: biancacristinacriste...@gmail.com, dexonsm...@apple.com, dgre...@apple.com, llvm-bugs@lists.llvm.org, vvasi...@cern.ch Classification: Unclassified Clang modules selfhost bots are currently failing during IR emission with: clang-3.8: /home/buildbot/modules-slave-1/clang-x86_64-linux-selfhost-modules/llvm.src/tools/clang/include/clang/AST/ExprCXX.h:1067: clang::Expr *clang::CXXDefaultInitExpr::getExpr(): Assertion `Field->getInClassInitializer() && "initializer hasn't been parsed"' failed. [...] 3. /home/buildbot/modules-slave-1/clang-x86_64-linux-selfhost-modules/llvm.src/include/llvm/ADT/ilist.h:199:3: Generating code for declaration 'llvm::ilist_iterator<llvm::Instruction>::ilist_iterator' I would guess the problem is that we merged multiple FieldDecls together, and then asked the wrong declaration of the field for its initializer. (It's valid for one FieldDecl for a field to have an initializer and another FieldDecl to not have one, since we lazily instantiate the initializer if the field is a member of a class template, and we don't attempt to accomodate that.) Once we have a reduced testcase, we can presumably fix this by copying the initializer onto the canonical declaration whenever we merge FieldDecls, and making FieldDecl::getInClassInitializer look on the canonical declaration. -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs