[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
Tue Jun 22 19:32:28 PDT 2021


rupprecht added a comment.

In D102993#2811902 <https://reviews.llvm.org/D102993#2811902>, @rupprecht wrote:

> 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!

`ToDC->getDeclKindName()` is "ClassTemplateSpecialization". Does that explain the unreachable error message? Maybe it needs a special case somewhere?

> - `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