Incorporate DILLexer changes from upstream commit.#18
Conversation
Note: This test won't compile or run until the other DILLexer changes are committed (upcoming PR).
|
It looks like I can create PRs for our collaboration work. :-) |
|
Should we merge #5 first and then put these tests in |
Yes, that makes sense. :-) |
Also update all the other DIL files to use the updated Token & Lexer fields & methods appropriately. Update DILGetValueForVariableExpressionPath to create the lexer & pass it to the parser.
|
Whoops! I meant to create a separate PR with all the rest of my lexer/token changes (from my LLDB upstream PR), but I seem to have pushed all the changes into this PR. Is that ok? |
|
Yeah, might as well, just need to change the PR title to reflect this :) |
Done. |
|
There are some merge conflicts due to 21d4384, could you rebase this branch on |
Done. |
|
Now that #5 is merged, let's put the lexer unit tests in |
|
Hm...I'm seeing some new unittest failures now (possibly due to my lexer changes?). I need to look into those... |
Also some XFailed tests could become fixed because the changes, so they result in an error now, try removing |
|
This is passing all the unittests except EvalTest.TestCxxStaticCast. It's failing that with: /usr/local/google3/cmtice/access-softek-dil/lldb/unittests/DIL/DILTests.cpp:1573: Failure /usr/local/google3/cmtice/access-softek-dil/lldb/unittests/DIL/DILTests.cpp:1577: Failure I'm not sure why it's not recognizing nullptr_t as a valid type name, nor how to fix that. Do you have any ideas? If not, I'll dive into this a bit more... |
|
It might be worth merging this into the main branch now, and we can continue to look into the test failure after that. Just a thought. |
This is the same error I skipped with the last commit in unit tests PR. It doesn't fail on my system, so it's hard to debug. I think we can merge this PR, since I'm pretty sure the error has nothing to do with DIL, just with I have a couple of ideas though:
|
I tried including I debugged the code and found a bug in ResolveTypesByName (In DILAST.cpp): It was finding. a partial match between "std::__1::nullptr_t" and "nullptr_t", but it wasn't using/returning the partial match. I've fixed this (and uploaded the fix to this PR). I'm still getting a failure, but now the failure is just a mismatch in the error messages: [ RUN ] EvalTest.TestCxxStaticCast /usr/local/google3/cmtice/access-softek-dil/lldb/unittests/DIL/DILTests.cpp:1577: Failure /usr/local/google3/cmtice/access-softek-dil/lldb/unittests/DIL/DILTests.cpp:1604: Skipped (I do worry a bit about that last line, about the Segfault in the matcher...) |
Good catch, and with this change I realized that the command I wrote to build the test binary is linking it with the in-tree libc++ wrong, so we're still getting different libc++ versions linked. I will make another PR fixing that, we can merge this PR now.
This is just a message I wrote as a reminder why the following tests after DILTests.cpp:1604 are skipped, I'll look into it eventually. |
Upstream PR: llvm/llvm-project#123521