]> granicus.if.org Git - clang/commit
Make tag declarations redeclarable. This change has three purposes:
authorDouglas Gregor <dgregor@apple.com>
Wed, 29 Jul 2009 23:36:44 +0000 (23:36 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 29 Jul 2009 23:36:44 +0000 (23:36 +0000)
commit8e9e9ef5348bce1a8f0741a5684fac3de9701c28
treeda4ef264be5202213f0470cd5c9fa42dcf654fa6
parent5266d2ed446e9588eb00579ddfc5a2d327a5b3ab
Make tag declarations redeclarable. This change has three purposes:

  1) Allow the Index library (and any other interested client) to walk
  the set of declarations for a given tag (enum, union, class,
  whatever). At the moment, this information is not readily available.

  2) Reduce our dependence on TagDecl::TypeForDecl being mapped down
  to a TagType (for which getDecl() will return the tag definition, if
  one exists). This property won't exist for class template partial
  specializations.

  3) Make the canonical declaration of a TagDecl actually canonical,
  e.g., so that it does not change when the tag is defined.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77523 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/Decl.h
include/clang/AST/DeclCXX.h
include/clang/AST/DeclTemplate.h
lib/AST/Decl.cpp
lib/AST/DeclCXX.cpp
lib/AST/DeclTemplate.cpp
lib/Frontend/PCHReaderDecl.cpp
lib/Frontend/PCHWriterDecl.cpp