[all-commits] [llvm/llvm-project] 8340fb: [lldb] Reactivate Objective-C++ plugin

Raphael Isemann via All-commits all-commits at lists.llvm.org
Fri Jun 19 10:17:20 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 8340fbb9c7bc9ea5f3b636ec3c449ff87d88fd9d
      https://github.com/llvm/llvm-project/commit/8340fbb9c7bc9ea5f3b636ec3c449ff87d88fd9d
  Author: Raphael Isemann <teemperor at gmail.com>
  Date:   2020-06-19 (Fri, 19 Jun 2020)

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    A lldb/unittests/Language/CLanguages/CLanguagesTest.cpp
    A lldb/unittests/Language/CLanguages/CMakeLists.txt
    M lldb/unittests/Language/CMakeLists.txt
    M lldb/unittests/Language/Highlighting/HighlighterTest.cpp

  Log Message:
  -----------
  [lldb] Reactivate Objective-C++ plugin

Summary:
Since commit 7b3ef05a37fef2f805d31f498d30198ddeeb1a0c the Objective-C++ plugin is dead code.
That commit added Objective-C++ to the list of languages for which `Language::LanguageIsCPlusPlus`
returns true. As the C++ language plugin also uses that method to figure out if it is responsible for a
given language, the C++ plugin since then also became the plugin that we found when looking for
a language plugin for Objective-C++. The only real fallout from that is that the source highlighting
for Objective-C++ files never worked as we always found the C++ plugin which refuses to highlight
files with Objective-C++ extensions.

This patch just adds a special exception for Objective-C++ to the list of languages that are governed
by the C++ plugin. Also adds a test that makes sure that we find the right plugin for all C language
types and that the highlighting for `.mm` (Objective-C++) and `.m` (Objective-C) files works.

I didn't revert 7b3ef05a37fef2f805d31f498d30198ddeeb1a0c as it does make sense to return
true for Objective-C++ from `Language::LanguageIsCPlusPlus` (e.g., we currently check if we care about
ODR violations by doing `if (Language::LanguageIsCPlusPlus(...))` and this should also work for
Objective-C++).

Fixes rdar://64420183

Reviewers: aprantl

Reviewed By: aprantl

Subscribers: mgorny, abidh, JDevlieghere

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




More information about the All-commits mailing list