This patch is the first step to solve the problem that no one is owning the<br>struct decl in the following code:<br><br>typedef struct s {} s_t;<br><br>Later a TypeSpecifier holding this struct decl will be added to DeclGroup as<br>
discussed on the mailing list months before.<br><br>The root of changes is at Sema::FinalizeDeclaratorGroup.  It returns<br>DeclGroupOwningRef instead of DeclTy*.  A bunch of related methods now return<br>DeclGroupOwningRef instead of DeclTy*.<br>
<br>Top level declarations are DeclGroups instead of Decls.  TranslationUnit<br>uses a vector of DeclGroupOwningRef to track all Decls.  Most of the dtor of<br>TranslationUnit is disabled. The cleanup works should be done by the DeclGroup.<br>
<br>LinkageSpecDecl now uses a DeclGroup array to track all Decls.<br><br>Three ObjC static analysis test cases fail. I haven't figured out the reasons.<br><br><br>