[PATCH] D28916: [ThinLTO] Fix lazy-loading of MDString instruction attachments

Peter Collingbourne via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 19 16:16:04 PST 2017

pcc added a comment.

F3002091: repro.zip <https://reviews.llvm.org/F3002091>

Unfortunately this doesn't seem to entirely fix the CFI issue. With this patch applied I get these assertion failures for the attached test case (`llvm-lto2 @resolution.txt -o /tmp/foo`):

  invalid local scope
  !18644 = distinct !DILexicalBlock(scope: null, file: !5600, line: 137, column: 2)
  invalid local scope
  !18685 = distinct !DILexicalBlock(scope: null, file: !5600, line: 164, column: 2)
  llvm-lto2: [...]/include/llvm/Support/Casting.h:95: static bool llvm::isa_impl_cl<llvm::DILocalScope, const llvm::Metadata *>::doit(const From *) [To = llvm::DILocalScope, From = const llvm::Metadata *]: Assertion `Val && "isa<> used on a null pointer"' failed.
  Aborted (core dumped)

If I pass `-disable-ondemand-mds-loading` or if I revert this patch I get the "expected" behaviour ("expected" because of incomplete support for CFI on trunk):

  Can't get register for value!
  UNREACHABLE executed at [...]/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1202!


More information about the llvm-commits mailing list