diff options
Diffstat (limited to 'cross/h8300-hms-gcc/patches/patch-ab')
-rw-r--r-- | cross/h8300-hms-gcc/patches/patch-ab | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/cross/h8300-hms-gcc/patches/patch-ab b/cross/h8300-hms-gcc/patches/patch-ab new file mode 100644 index 00000000000..a621b3c5918 --- /dev/null +++ b/cross/h8300-hms-gcc/patches/patch-ab @@ -0,0 +1,104 @@ +$NetBSD: patch-ab,v 1.1 2010/02/14 06:28:07 dholland Exp $ + +--- ../gcc-3.1/gcc/cp/decl.c~ 2002-05-03 18:55:23.000000000 +0000 ++++ ../gcc-3.1/gcc/cp/decl.c +@@ -458,6 +458,11 @@ struct binding_level + ? cp_function_chain->bindings \ + : scope_chain->bindings) + ++#define current_binding_level__LVALUE \ ++ (*(cfun && cp_function_chain->bindings \ ++ ? &cp_function_chain->bindings \ ++ : &scope_chain->bindings)) ++ + /* The binding level of the current class, if any. */ + + #define class_binding_level scope_chain->class_bindings +@@ -507,7 +512,7 @@ push_binding_level (newlevel, tag_transp + are active. */ + memset ((char*) newlevel, 0, sizeof (struct binding_level)); + newlevel->level_chain = current_binding_level; +- current_binding_level = newlevel; ++ current_binding_level__LVALUE = newlevel; + newlevel->tag_transparent = tag_transparent; + newlevel->more_cleanups_ok = 1; + +@@ -563,7 +568,7 @@ pop_binding_level () + #endif /* defined(DEBUG_CP_BINDING_LEVELS) */ + { + register struct binding_level *level = current_binding_level; +- current_binding_level = current_binding_level->level_chain; ++ current_binding_level__LVALUE = current_binding_level->level_chain; + level->level_chain = free_binding_level; + #if 0 /* defined(DEBUG_CP_BINDING_LEVELS) */ + if (level->binding_depth != binding_depth) +@@ -578,7 +583,7 @@ static void + suspend_binding_level () + { + if (class_binding_level) +- current_binding_level = class_binding_level; ++ current_binding_level__LVALUE = class_binding_level; + + if (global_binding_level) + { +@@ -600,7 +605,7 @@ suspend_binding_level () + } + is_class_level = 0; + #endif /* defined(DEBUG_CP_BINDING_LEVELS) */ +- current_binding_level = current_binding_level->level_chain; ++ current_binding_level__LVALUE = current_binding_level->level_chain; + find_class_binding_level (); + } + +@@ -613,7 +618,7 @@ resume_binding_level (b) + my_friendly_assert(!class_binding_level, 386); + /* Also, resuming a non-directly nested namespace is a no-no. */ + my_friendly_assert(b->level_chain == current_binding_level, 386); +- current_binding_level = b; ++ current_binding_level__LVALUE = b; + #if defined(DEBUG_CP_BINDING_LEVELS) + b->binding_depth = binding_depth; + indent (); +@@ -4292,9 +4297,9 @@ pushdecl_with_scope (x, level) + else + { + b = current_binding_level; +- current_binding_level = level; ++ current_binding_level__LVALUE = level; + x = pushdecl (x); +- current_binding_level = b; ++ current_binding_level__LVALUE = b; + } + current_function_decl = function_decl; + return x; +@@ -6515,7 +6520,7 @@ cxx_init_decl_processing () + current_lang_name = lang_name_c; + + current_function_decl = NULL_TREE; +- current_binding_level = NULL_BINDING_LEVEL; ++ current_binding_level__LVALUE = NULL_BINDING_LEVEL; + free_binding_level = NULL_BINDING_LEVEL; + + build_common_tree_nodes (flag_signed_char); +@@ -10080,10 +10085,10 @@ grokdeclarator (declarator, declspecs, d + if (decl_context == NORMAL && !toplevel_bindings_p ()) + { + struct binding_level *b = current_binding_level; +- current_binding_level = b->level_chain; ++ current_binding_level__LVALUE = b->level_chain; + if (current_binding_level != 0 && toplevel_bindings_p ()) + decl_context = PARM; +- current_binding_level = b; ++ current_binding_level__LVALUE = b; + } + + if (name == NULL) +@@ -13720,7 +13725,7 @@ start_function (declspecs, declarator, a + FIXME factor out the non-RTL stuff. */ + bl = current_binding_level; + init_function_start (decl1, input_filename, lineno); +- current_binding_level = bl; ++ current_binding_level__LVALUE = bl; + + /* Even though we're inside a function body, we still don't want to + call expand_expr to calculate the size of a variable-sized array. |