Предупреждение о скрытии переменных-членов?

Следующий фрагмент кода имеет утечку памяти, которую я потратил слишком много времени на поиски. Проблема в том, что внутри Foo () локальная переменная x_ скрывает переменную-член x_. Это тоже довольно раздражает, потому что компилятор мог предупредить меня об этом. Есть ли в GCC флаг для такого предупреждения? (Для любопытных: я пришел к ошибочному коду, сначала используя локальную переменную, затем изменив ее на переменную-член, но забыв удалить объявление типа.)

struct A {
  A() x_(NULL) {}

  ~A() {
    delete x_;
  }

  void Foo() {
    HugeThingy* x_ = new HugeThingy();
    x_->Bar("I. Need. Garbage. Collection. Now.");
  }

  HugeThingy* x_;

  DISALLOW_COPY_AND_ASSIGN(A);  // Macro to prevent copy/assign.
}

Ответы на вопрос(3)

Ваш ответ на вопрос