[libc-commits] [clang-tools-extra] [libc] clang-tidy: readability-redundant-smartptr-get does not remove -> (#97964) (PR #98757)

via libc-commits libc-commits at lists.llvm.org
Mon Jul 22 13:47:44 PDT 2024


================
@@ -235,3 +276,13 @@ void Negative() {
   if (MACRO(x) == nullptr)
     ;
 }
+
+void test_redundant_get() {
+  std::vector<std::shared_ptr<int>> v;
+  auto f = [](int) {};
+  for (auto i = v.begin(); i != v.end(); ++i) {
+    f(*i->get());
----------------
akshaykumars614 wrote:

struct Inner {
  int a;
  int *getValue()  { return &a; }
};

struct Example {
  Inner inner;
  Inner* get() { return &inner; }
  int *getValue()  { return inner.getValue(); }
};

void test_redundant_get() {
  std::vector<std::shared_ptr<int>> v;
  auto f = [](int) {};
  for (auto i = v.begin(); i != v.end(); ++i) {
    f(**i);
  }
}

void test_redundant_get_with_member() {
  std::vector<std::shared_ptr<Example>> v;
  auto f = [](int) {};
  for (auto i = v.begin(); i != v.end(); ++i) {
    f(*i->get()->getValue()); // No redundancy here
  }
}

but cannot reproduce the redundant get() warning 




https://github.com/llvm/llvm-project/pull/98757


More information about the libc-commits mailing list