[llvm-commits] [llvm-gcc-4.2] r83569 - in /llvm-gcc-4.2/trunk/gcc: c-decl.c cp/decl.c testsuite/objc.dg/block-weak.m
Bill Wendling
isanbard at gmail.com
Thu Oct 8 13:12:52 PDT 2009
Author: void
Date: Thu Oct 8 15:12:52 2009
New Revision: 83569
URL: http://llvm.org/viewvc/llvm-project?rev=83569&view=rev
Log:
Radar 7284529
* c-decl.c (init_byref_decl): Ensure copy/dispose helper is unique.
* cp/decl.c (init_byref_decl): Likewise.
Patch by Mike Stump!
Added:
llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/block-weak.m
Modified:
llvm-gcc-4.2/trunk/gcc/c-decl.c
llvm-gcc-4.2/trunk/gcc/cp/decl.c
Modified: llvm-gcc-4.2/trunk/gcc/c-decl.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-decl.c?rev=83569&r1=83568&r2=83569&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-decl.c (original)
+++ llvm-gcc-4.2/trunk/gcc/c-decl.c Thu Oct 8 15:12:52 2009
@@ -3873,7 +3873,7 @@
tree_cons (NULL_TREE, ptr_type_node,
tree_cons (NULL_TREE, ptr_type_node,
void_list_node)));
- strcpy (name, "__Block_byref_id_object_copy");
+ sprintf (name, "__Block_byref_id_object_copy%d", kind);
block_byref_id_object_copy[kind] = build_helper_func_decl (get_identifier (name),
func_type);
/* Synthesize function definition. */
@@ -3891,7 +3891,7 @@
tree func_type =
build_function_type (void_type_node,
tree_cons (NULL_TREE, ptr_type_node, void_list_node));
- strcpy (name, "__Block_byref_id_object_dispose");
+ sprintf (name, "__Block_byref_id_object_dispose%d", kind);
block_byref_id_object_dispose[kind] = build_helper_func_decl (get_identifier (name),
func_type);
/* Synthesize function definition. */
Modified: llvm-gcc-4.2/trunk/gcc/cp/decl.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/decl.c?rev=83569&r1=83568&r2=83569&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/decl.c (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/decl.c Thu Oct 8 15:12:52 2009
@@ -5623,7 +5623,7 @@
tree_cons (NULL_TREE, ptr_type_node,
tree_cons (NULL_TREE, ptr_type_node,
void_list_node)));
- strcpy (name, "__Block_byref_id_object_copy");
+ sprintf (name, "__Block_byref_id_object_copy%d", kind);
block_byref_id_object_copy[kind] = build_helper_func_decl (get_identifier (name),
func_type);
DECL_CONTEXT (block_byref_id_object_copy[kind]) = current_function_decl;
@@ -5645,7 +5645,7 @@
func_type =
build_function_type (void_type_node,
tree_cons (NULL_TREE, ptr_type_node, void_list_node));
- strcpy (name, "__Block_byref_id_object_dispose");
+ sprintf (name, "__Block_byref_id_object_dispose%d", kind);
block_byref_id_object_dispose[kind] = build_helper_func_decl (get_identifier (name),
func_type);
DECL_CONTEXT (block_byref_id_object_dispose[kind]) = current_function_decl;
Added: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/block-weak.m
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/block-weak.m?rev=83569&view=auto
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/block-weak.m (added)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/block-weak.m Thu Oct 8 15:12:52 2009
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file __block copy/dispose 7284529 */
+/* { dg-do compile { target *-*-darwin* } } */
+/* { dg-options "-fblocks" } */
+
+ at interface ShortcutsController
+ at end
+
+ at class barbar;
+ at implementation ShortcutsController
+- (void) _markConflicts
+{
+ __attribute__((__blocks__(byref))) barbar * matchDict;
+ __attribute__((__blocks__(byref))) void (^markConflictsBlock)();
+}
+ at end
More information about the llvm-commits
mailing list