[PATCH] D113743: [RFC][clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block

Kristina Bessonova via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 6 09:59:10 PST 2021


krisb added a comment.

In D113743#3173981 <https://reviews.llvm.org/D113743#3173981>, @JDevlieghere wrote:

> Hey Kristina, this broke TestSetData.py on GreenDragon: https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/39089/
>
> Since the bot has been red for several hours I went ahead and reverted your change in 4cb79294e8df8c91ae15264d1014361815d34a53 <https://reviews.llvm.org/rG4cb79294e8df8c91ae15264d1014361815d34a53>.

Thank you for taking care of this!
I'm looking at the issue, but it's been taking more time than I expected.

This doesn't seem like a flaw of the patch, but likely is a lack of support of records/typedefs scoped within a bracketed block from lldb side.
I see lldb couldn't handle cases like

  int foo(int a) {
    {
      typedef int Int;
      Int local = a;
      return local;
    }
  }

which produces the same error as for TestSetData.py:

  Process 2487354 stopped
  * thread #1, name = 'a.out', stop reason = step over
      frame #0: 0x000000000040111d a.out`foo(a=1) at test_lldb.cpp:5:12
     2   	  {
     3   	    typedef int Int;
     4   	    Int local = a;
  -> 5   	    return local;
     6   	  }
     7   	}
     8   	
  (lldb) p local
  error: expression failed to parse:
  error: <lldb wrapper prefix>:45:31: no member named 'local' in namespace '$__lldb_local_vars'
      using $__lldb_local_vars::local;
            ~~~~~~~~~~~~~~~~~~~~^
  error: <user expression 0>:1:1: use of undeclared identifier 'local'
  local
  ^


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113743



More information about the cfe-commits mailing list