Collect and build and process type attributes on pointers.  For 
example, we can now correctly build the type for things like:
    _AS1 float * _AS2 *B;



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47420 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/SemaDecl.cpp b/Sema/SemaDecl.cpp
index 9db0e01..e0a42a2 100644
--- a/Sema/SemaDecl.cpp
+++ b/Sema/SemaDecl.cpp
@@ -732,8 +732,8 @@
     FunctionDecl *NewFD = new FunctionDecl(D.getIdentifierLoc(), II, R, SC,
                                            D.getDeclSpec().isInlineSpecified(),
                                            LastDeclarator);
-    // FIXME: Handle attributes.
-    D.getDeclSpec().clearAttributes();
+    // FIXME: Handle attributes: should delete anything left.
+    D.getDeclSpec().SetAttributes(0);
     
     // Merge the decl with the existing one if appropriate. Since C functions
     // are in a flat namespace, make sure we consider decls in outer scopes.