summaryrefslogtreecommitdiff
path: root/cross/h8300-hms-gcc/patches/patch-ab
diff options
context:
space:
mode:
Diffstat (limited to 'cross/h8300-hms-gcc/patches/patch-ab')
-rw-r--r--cross/h8300-hms-gcc/patches/patch-ab104
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.