[Lldb-commits] [PATCH] D102993: [lldb] Disable minimal import mode for RecordDecls that back FieldDecls

Jordan Rupprecht via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 10 16:39:55 PDT 2021


rupprecht added a comment.

In D102993#2811337 <https://reviews.llvm.org/D102993#2811337>, @teemperor wrote:

> Sure I can take a look, but I don't see the immediate problem when looking at the backtrace.
>
> I assume it takes some time to reduce the bug in Chrome? If you could get me the `dump()` output for the Decls `D`, `(Decl*)ToDC`, `FromRD`, `ToD`, `(Decl*)ToD->getLexicalDeclContext()` and whether the left or the right side of the `&&` is true/false then maybe it becomes more obvious what's going wrong here.

This is probably not going to be useful:

- `D->dump()`: `FieldDecl 0x169993f9fbd0 <<invalid sloc>> <invalid sloc> __r_ 'std::__compressed_pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >::__rep, std::allocator<char> >'`
- `((Decl*)ToDC)->dump()` - prints:

  a decl that inherits DeclContext isn't handled
  UNREACHABLE executed at llvm-project/clang/lib/AST/DeclBase.cpp:928!

- `FromRD->dump()` prints something waaaay to long to include here :)

  ClassTemplateSpecializationDecl 0x169983fc2b98 <<invalid sloc>> <invalid sloc> class basic_string definition
  |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init
  | |-DefaultConstructor exists non_trivial user_provided
  | |-CopyConstructor non_trivial user_declared has_const_param needs_overload_resolution implicit_has_const_param
  | |-MoveConstructor exists non_trivial user_declared 
  | |-CopyAssignment non_trivial has_const_param user_declared needs_overload_resolution implicit_has_const_param
  | |-MoveAssignment exists non_trivial user_declared
  | `-Destructor non_trivial user_declared
  |-private 'std::__basic_string_common<true>'
  |-TemplateArgument type 'char'
  | `-BuiltinType 0x1695c0305860 'char'
  ...



- `((Decl*)ToD)->getLexicalDeclContext()` errors: `error: Execution was interrupted, reason: signal SIGSEGV: address access protected (fault address: 0x55e264000000).` (ToD is nonnull: 0x00001699897a5e00)

I'm running out of time today & I'm off tomorrow, but I should be able to post something on Monday. I have a suspicion it's dependent on whatever flags chrome is building with, so I'll try to figure that out too.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D102993/new/

https://reviews.llvm.org/D102993



More information about the lldb-commits mailing list