Create a redeclaration when an elaborated type specifier
resolves to an existing declaration if there are attributes
present.

This gives us something to apply the attributes to.

llvm-svn: 208756
diff --git a/clang/test/Sema/struct-decl.c b/clang/test/Sema/struct-decl.c
index 8d3d74d..055f14b 100644
--- a/clang/test/Sema/struct-decl.c
+++ b/clang/test/Sema/struct-decl.c
@@ -66,3 +66,6 @@
   struct hiding_1 *p = hiding_1();
   struct hiding_2 *q = hiding_2;
 }
+
+struct PreserveAttributes {};
+typedef struct __attribute__((noreturn)) PreserveAttributes PreserveAttributes_t; // expected-warning {{'noreturn' attribute only applies to functions and methods}}