Coverage Report

Created: 2023-09-21 18:56

/Users/buildslave/jenkins/workspace/coverage/llvm-project/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp
Line
Count
Source (jump to first uncovered line)
1
//===-- ObjCPlusPlusLanguage.cpp ------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "ObjCPlusPlusLanguage.h"
10
11
#include "lldb/Core/PluginManager.h"
12
#include "lldb/Utility/ConstString.h"
13
14
using namespace lldb;
15
using namespace lldb_private;
16
17
LLDB_PLUGIN_DEFINE(ObjCPlusPlusLanguage)
18
19
84
bool ObjCPlusPlusLanguage::IsSourceFile(llvm::StringRef file_path) const {
20
84
  const auto suffixes = {".h", ".mm"};
21
168
  for (auto suffix : suffixes) {
22
168
    if (file_path.ends_with_insensitive(suffix))
23
71
      return true;
24
168
  }
25
13
  return false;
26
84
}
27
28
3.95k
void ObjCPlusPlusLanguage::Initialize() {
29
3.95k
  PluginManager::RegisterPlugin(GetPluginNameStatic(), "Objective-C++ Language",
30
3.95k
                                CreateInstance);
31
3.95k
}
32
33
3.95k
void ObjCPlusPlusLanguage::Terminate() {
34
3.95k
  PluginManager::UnregisterPlugin(CreateInstance);
35
3.95k
}
36
37
// Static Functions
38
163k
Language *ObjCPlusPlusLanguage::CreateInstance(lldb::LanguageType language) {
39
163k
  switch (language) {
40
1.11k
  case lldb::eLanguageTypeObjC_plus_plus:
41
1.11k
    return new ObjCPlusPlusLanguage();
42
162k
  default:
43
162k
    return nullptr;
44
163k
  }
45
163k
}