Merge from trunk.  r105504.

llvm-svn: 105506
diff --git a/llvm-gcc-4.2/gcc/config/darwin.c b/llvm-gcc-4.2/gcc/config/darwin.c
index e1c46d5..d11d227 100644
--- a/llvm-gcc-4.2/gcc/config/darwin.c
+++ b/llvm-gcc-4.2/gcc/config/darwin.c
@@ -2633,6 +2633,7 @@
       var = build_decl (CONST_DECL, NULL, TREE_TYPE (constructor));
       DECL_INITIAL (var) = constructor;
       TREE_STATIC (var) = 1;
+      DECL_IGNORED_P (var) = 1;
       pushdecl_top_level (var);
       desc->constructor = var;
     }
diff --git a/llvm-gcc-4.2/gcc/llvm-debug.cpp b/llvm-gcc-4.2/gcc/llvm-debug.cpp
index 14cef32..feb07b4 100644
--- a/llvm-gcc-4.2/gcc/llvm-debug.cpp
+++ b/llvm-gcc-4.2/gcc/llvm-debug.cpp
@@ -527,7 +527,7 @@
 /// EmitGlobalVariable - Emit information about a global variable.
 ///
 void DebugInfo::EmitGlobalVariable(GlobalVariable *GV, tree decl) {
-  if (DECL_ARTIFICIAL(decl))
+  if (DECL_ARTIFICIAL(decl) || DECL_IGNORED_P(decl))
     return;
   // Gather location information.
   expanded_location Loc = expand_location(DECL_SOURCE_LOCATION(decl));