[llvm-commits] [llvm-gcc-4.2] r61190 - in /llvm-gcc-4.2/trunk/gcc: c-parser.c cp/parser.c

Bill Wendling isanbard at gmail.com
Wed Dec 17 18:36:54 PST 2008


Author: void
Date: Wed Dec 17 20:36:53 2008
New Revision: 61190

URL: http://llvm.org/viewvc/llvm-project?rev=61190&view=rev
Log:
- The type of the block_descriptor part of a block_literal was different from
  its actual type. This corrects that.
- Also, block_helpers are constant.

Modified:
    llvm-gcc-4.2/trunk/gcc/c-parser.c
    llvm-gcc-4.2/trunk/gcc/cp/parser.c

Modified: llvm-gcc-4.2/trunk/gcc/c-parser.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-parser.c?rev=61190&r1=61189&r2=61190&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-parser.c (original)
+++ llvm-gcc-4.2/trunk/gcc/c-parser.c Wed Dec 17 20:36:53 2008
@@ -9662,8 +9662,11 @@
 	      rest_of_decl_compilation (NSConcreteGlobalBlock_decl, 0, 0);
 	    }
 	}
+      /* LLVM LOCAL begin radar 5865221 */
       initlist = build_tree_list (fields,
-				  build_fold_addr_expr (NSConcreteGlobalBlock_decl));
+                                  convert (ptr_type_node,
+                                           build_fold_addr_expr (NSConcreteGlobalBlock_decl)));
+      /* LLVM LOCAL end radar 5865221 */
       flags |= BLOCK_IS_GLOBAL;
     }
   else
@@ -9683,8 +9686,11 @@
 	      rest_of_decl_compilation (NSConcreteStackBlock_decl, 0, 0);
 	    }
 	}
+      /* LLVM LOCAL begin radar 5865221 */
       initlist = build_tree_list (fields,
-				  build_fold_addr_expr (NSConcreteStackBlock_decl));
+                                  convert (ptr_type_node,
+                                           build_fold_addr_expr (NSConcreteStackBlock_decl)));
+      /* LLVM LOCAL end radar 5865221 */
     }
   fields = TREE_CHAIN (fields);
 
@@ -9707,9 +9713,11 @@
   fields = TREE_CHAIN (fields);
 
   /* __descriptor */
+  /* LLVM LOCAL begin radar 5865221 */
   initlist = tree_cons (fields,
-			convert (ptr_type_node, build_fold_addr_expr (descriptor_block_decl)),
+			build_fold_addr_expr (descriptor_block_decl),
 			initlist);
+  /* LLVM LOCAL end radar 5865221 */
   for (chain = block_impl->block_original_ref_decl_list; chain;
        chain = TREE_CHAIN (chain))
     {
@@ -9833,6 +9841,8 @@
     TREE_STATIC (block_holder_tmp_decl) = 1;
     finish_decl (block_holder_tmp_decl, constructor, NULL_TREE);
   }
+  /* LLVM LOCAL radar 5865221 */
+  TREE_CONSTANT (block_holder_tmp_decl) = 1;
   return block_holder_tmp_decl;
 }
 /* APPLE LOCAL end radar 5847213 - radar 6329245 */

Modified: llvm-gcc-4.2/trunk/gcc/cp/parser.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/parser.c?rev=61190&r1=61189&r2=61190&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/parser.c (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/parser.c Wed Dec 17 20:36:53 2008
@@ -20876,7 +20876,11 @@
 	      rest_of_decl_compilation (NSConcreteGlobalBlock_decl, 0, 0);
 	    }
 	}
-      CONSTRUCTOR_APPEND_ELT(impl_v, NULL_TREE, build_fold_addr_expr (NSConcreteGlobalBlock_decl));
+      /* LLVM LOCAL begin radar 5865221 */
+      CONSTRUCTOR_APPEND_ELT(impl_v, NULL_TREE,
+                             convert (ptr_type_node,
+                                      build_fold_addr_expr (NSConcreteGlobalBlock_decl)));
+      /* LLVM LOCAL end radar 5865221 */
       flags |= BLOCK_IS_GLOBAL;
     }
   else
@@ -20896,7 +20900,11 @@
 	      rest_of_decl_compilation (NSConcreteStackBlock_decl, 0, 0);
 	    }
 	}
-      CONSTRUCTOR_APPEND_ELT(impl_v, NULL_TREE, build_fold_addr_expr (NSConcreteStackBlock_decl));
+      /* LLVM LOCAL begin radar 5865221 */
+      CONSTRUCTOR_APPEND_ELT(impl_v, NULL_TREE,
+                             convert (ptr_type_node,
+                                      build_fold_addr_expr (NSConcreteStackBlock_decl)));
+      /* LLVM LOCAL end radar 5865221 */
     }
 
   /* __flags */
@@ -21029,6 +21037,8 @@
     TREE_PUBLIC (block_holder_tmp_decl) = 0;
     TREE_STATIC (block_holder_tmp_decl) = 1;
   }
+  /* LLVM LOCAL radar 5865221 */
+  TREE_CONSTANT (block_holder_tmp_decl) = 1;
   cp_finish_decl (block_holder_tmp_decl, constructor, 0, 0, LOOKUP_ONLYCONVERTING);
   return block_holder_tmp_decl;
 }





More information about the llvm-commits mailing list