[all-commits] [llvm/llvm-project] 8016d6: [LLDB] CPlusPlusNameParser does not handles templa...

Shafik Yaghmour via All-commits all-commits at lists.llvm.org
Fri Mar 27 14:47:07 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 8016d61e3cf4967dd28c8f6296cec685dadcaee6
      https://github.com/llvm/llvm-project/commit/8016d61e3cf4967dd28c8f6296cec685dadcaee6
  Author: shafik <syaghmour at apple.com>
  Date:   2020-03-27 (Fri, 27 Mar 2020)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp
    M lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp

  Log Message:
  -----------
  [LLDB] CPlusPlusNameParser does not handles templated operator< properly

CPlusPlusNameParser is used in several places on of them is during IR execution and setting breakpoints to pull information C++ like the basename, the context and arguments.

Currently it does not handle templated operator< properly, because of idiosyncrasy is how clang generates debug info for these cases.

It uses clang::Lexer which will tokenize operator<<A::B> into:

tok::kw_operator
tok::lessless
tok::raw_identifier

Later on the parser in ConsumeOperator() does not handle this case properly and we end up failing to parse.

Differential Revision: https://reviews.llvm.org/D76168




More information about the All-commits mailing list