]> granicus.if.org Git - clang/commit
Mark all subsequent decls used.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 8 Jan 2013 19:43:34 +0000 (19:43 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 8 Jan 2013 19:43:34 +0000 (19:43 +0000)
commitb9725cfb0a50731930a6331beb70f361b4d52a29
treed5b325c55bff6ec06d00be7fbae9af927ae14fa3
parentcb4d690820295d93c1cea6c13fb4409b8c1db2cf
Mark all subsequent decls used.

In the source

  static void f();
  static void f();
  template<typename T>
  static void g() {
    f();
  }
  static void f() {
  }
  void h() {
    g<int>();
  }

the call to f refers to the second decl, but it is only marked used at the end
of the translation unit during instantiation, after the third f decl has been
linked in.

With this patch we mark all subsequent decls used, so that it is easy to check
if a symbol is used or not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171888 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/Sema.cpp
lib/Sema/SemaExpr.cpp
test/SemaCXX/warn-func-not-needed.cpp