shebs       02/08/16 10:07:06

  Modified:    gcc      c-common.c c-common.h c-decl.c c-objc-common.c
                        cpplib.c cppmacro.c function.c gcc.c toplev.c
                        unwind-dw2-fde.c varasm.c
               gcc/cp   class.c cp-idebug.c cp-tree.h decl.c decl2.c lex.c
                        pt.c semantics.c spew.c
               gcc/pfe  c-freeze-thaw.c c-freeze-thaw.h cp-freeze-thaw.c
                        cp-freeze-thaw.h freeze-thaw.c pfe-header.c
                        pfe-header.h pfe-mem.c pfe-mem.h pfe.c pfe.h
                        pfedbg.c structs-to-check.def
  Log:
  Resolve still more merge issues, make PFE minimally functional.
  
  Revision  Changes    Path
  1.72      +6 -9      gcc3/gcc/c-common.c
  
  Index: c-common.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-common.c,v
  retrieving revision 1.71
  retrieving revision 1.72
  diff -u -r1.71 -r1.72
  --- c-common.c        2002/08/13 05:52:13     1.71
  +++ c-common.c        2002/08/16 17:06:53     1.72
  @@ -3898,7 +3898,12 @@
                                class, library_name_p ? name : NULL,
                                attrs);
       }
  -  if (name != 0 && !flag_no_builtin && !builtin_function_disabled_p (name)
  +  /* APPLE LOCAL begin alloca */
  +  /* Always treat plain "alloca" as a builtin.  */
  +  if (name != 0
  +      && (!flag_no_builtin || strcmp (name, "alloca") == 0)
  +      && !builtin_function_disabled_p (name)
  +      /* APPLE LOCAL end alloca */
         && !(nonansi_p && flag_no_nonansi_builtin))
       {
         decl = builtin_function (name, type, function_code, class, NULL,
  @@ -3908,14 +3913,6 @@
       }
     return (bdecl != 0 ? bdecl : decl);
   }
  -#if 0 /* APPLE MERGE fix body */
  -  /* APPLE LOCAL begin alloca */
  -  /* Special treatment for alloca */
  -  else if (name != 0 && !strcmp(name, "alloca") 
  -        && !builtin_function_disabled_p (name)
  -        && !(nonansi_p && flag_no_nonansi_builtin))
  -    {
  -#endif
   
   /* Nonzero if the type T promotes to int.  This is (nearly) the
      integral promotions defined in ISO C99 6.3.1.1/2.  */
  
  
  
  1.52      +40 -0     gcc3/gcc/c-common.h
  
  Index: c-common.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-common.h,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- c-common.h        2002/08/08 03:19:49     1.51
  +++ c-common.h        2002/08/16 17:06:53     1.52
  @@ -782,6 +782,46 @@
   
   extern int flag_enforce_eh_specs;
   
  +/* APPLE LOCAL begin -findirect-virtual-calls 2001-10-30 sts */
  +/* Nonzero if all calls to virtual functions should cause indirection
  +   through a vtable.  */
  +
  +extern int flag_indirect_virtual_calls;
  +/* APPLE LOCAL end -findirect-virtual-calls 2001-10-30 sts */
  +
  +/* APPLE LOCAL begin -fterminated-vtables */
  +/* Nonzero to terminate vtables with a unique value, currently zero.
  +   Used by the darwin kernel to find ends of vtables for patching
  +   when loading drivers dynamically.  */
  +
  +extern int flag_terminated_vtables;
  +/* APPLE LOCAL end -fterminated-vtables */
  +
  +/* APPLE LOCAL begin 2.95-compatibility stuff turly */
  +/* Nonzero if we're compiling in a gcc2.95-compatibility mode.
  +   Implies -fterminated-vtables and -findirect-virtual-calls,
  +   only-deleting-destructor support, 2.95 ptmfs, vptr initialisation,
  +   constructors-returning-this...  */
  + 
  +extern int flag_apple_kext;
  +/* APPLE LOCAL end 2.95-compatibility stuff turly */
  +
  +/* APPLE LOCAL begin structor thunks */
  +/* Nonzero if we prefer to clone con/de/structors.
  +   Alternative is to gen multiple tiny thunk-esque things that call/jump to a 
unified con/de/structor.
  +   This is a classic size/speed tradeoff.  */
  +extern int flag_clone_structors;
  +/* APPLE LOCAL begin structor thunks */
  +
  +/* APPLE LOCAL begin private extern  Radar 2872481 ilr */
  +/* Nonzero if -fpreprocessed specified.  This is needed by init_reswords()
  +   so that it can make __private_extern__ have the same rid code as extern
  +   when -fpreprocessed is specified.  Normally there is a -D on the command
  +   line for this.  But if -fpreprocessed was specified then macros aren't
  +   expanded.  So we fake the token value out using the rid code.  */
  +extern int flag_preprocessed;
  +/* APPLE LOCAL end private extern  Radar 2872481 ilr */
  +
   /* Nonzero means warn about implicit declarations.  */
   
   extern int warn_implicit;
  
  
  
  1.113     +42 -77    gcc3/gcc/c-decl.c
  
  Index: c-decl.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-decl.c,v
  retrieving revision 1.112
  retrieving revision 1.113
  diff -u -r1.112 -r1.113
  --- c-decl.c  2002/08/08 03:19:49     1.112
  +++ c-decl.c  2002/08/16 17:06:53     1.113
  @@ -60,6 +60,7 @@
   /* APPLE LOCAL begin PFE */
   #include "pfe/pfe.h"
   #include "pfe/pfe-header.h"
  +#include "pfe/c-freeze-thaw.h"
   /* Defined in toplev.c, flag_keep_static_consts is used during PFE_LOAD
      to regenerate DECL_RTLs.  */
   extern int flag_keep_static_consts;
  @@ -339,6 +340,8 @@
         int *flag;
     } warn_options[] = {
       /* This list is in alphabetical order.  Keep it like that.  */
  +    /* APPLE LOCAL AltiVec */
  +    { "altivec-long-deprecated", &warn_altivec_long_deprecated },
       { "bad-function-cast", &warn_bad_function_cast },
       { "cast-qual", &warn_cast_qual },
       { "char-subscripts", &warn_char_subscripts },
  @@ -350,8 +353,12 @@
       { "format-nonliteral", &warn_format_nonliteral },
       { "format-security", &warn_format_security },
       { "format-y2k", &warn_format_y2k },
  +    /* APPLE LOCAL -Wfour-char-constants  */
  +    { "four-char-constants", &warn_four_char_constants },
       { "implicit-function-declaration", &mesg_implicit_function_declaration },
       { "implicit-int", &warn_implicit_int },
  +    /* APPLE LOCAL long double */
  +    { "long-double", &warn_long_double },
       { "long-long", &warn_long_long },
       { "main", &warn_main },
       { "missing-braces", &warn_missing_braces },
  @@ -543,20 +550,6 @@
       }
     else if (!strcmp (p, "-Wno-implicit"))
       warn_implicit_int = 0, mesg_implicit_function_declaration = 0;
  -#if 1 /* APPLE MERGE move elsewhere? */
  -  /* APPLE LOCAL begin long double */
  -  else if (!strcmp (p, "-Wlong-double"))
  -    warn_long_double = 1; 
  -  else if (!strcmp (p, "-Wno-long-double"))
  -    warn_long_double = 0;
  -  /* APPLE LOCAL end long double */
  -  /* APPLE LOCAL begin -Wfour-char-constants  */
  -  else if (!strcmp (p, "-Wfour-char-constants"))
  -    warn_four_char_constants = 1;
  -  else if (!strcmp (p, "-Wno-four-char-constants"))
  -    warn_four_char_constants = 0;
  -  /* APPLE LOCAL end -Wfour-char-constants  */
  -#endif
     else if (!strcmp (p, "-Wno-main"))
       warn_main = -1;
     else if (!strcmp (p, "-Wunknown-pragmas"))
  @@ -565,12 +558,7 @@
       warn_unknown_pragmas = 2;
     else if (!strcmp (p, "-Wno-unknown-pragmas"))
       warn_unknown_pragmas = 0;
  -  /* APPLE LOCAL begin AltiVec */
  -  else if (!strcmp (p, "-Waltivec-long-deprecated"))
  -    warn_altivec_long_deprecated = 1; /* radar 2841709 */
  -  else if (!strcmp (p, "-Wno-altivec-long-deprecated"))
  -    warn_altivec_long_deprecated = 0; /* radar 2841709 */
  -  /* APPLE LOCAL end AltiVec */
  +  /* APPLE LOCAL -Wmost */
     else if (!strcmp (p, "-Wall") || !strcmp (p, "-Wmost"))
       {
         /* We save the value of warn_uninitialized, since if they put
  @@ -2527,7 +2515,7 @@
     /* Say where one reference is to the label,
        for the sake of the error if it is not defined.  */
     DECL_SOURCE_LINE (decl) = lineno;
  -  /* APPLE LOCAL PFE - PFE_SAVESTRING is null when not building for pfe.  */
  +  /* APPLE LOCAL PFE */
     DECL_SOURCE_FILE (decl) = PFE_SAVESTRING ((char *) input_filename);
   
     IDENTIFIER_LABEL_VALUE (id) = decl;
  @@ -2800,6 +2788,24 @@
     /* Adds some ggc roots, and reserved words for c-parse.in.  */
     c_parse_init ();
   
  +  /* APPLE LOCAL begin PFE */
  +  if (pfe_operation == PFE_LOAD)
  +    {
  +      /* Here global_binding_level is already initialized from 
pfe_compiler_state_ptr.  */
  +      global_binding_level->level_chain = current_binding_level;
  +      current_binding_level = global_binding_level;
  +      global_binding_level->keep = keep_next_level_flag;
  +      keep_next_level_flag = 0;
  +      global_binding_level->keep_if_subblocks = keep_next_if_subblocks;
  +      keep_next_if_subblocks = 0;
  +      
  +      /* We must initialize this before any builtin functions (which might have
  +      attributes) are declared.  (c_common_init is too late.)  */
  +      pfe_c_common_nodes_and_builtins ();
  +    }
  +  else {
  +  /* APPLE LOCAL end PFE */
  +
     current_function_decl = NULL;
     named_labels = NULL;
     current_binding_level = NULL_BINDING_LEVEL;
  @@ -2835,6 +2841,9 @@
       = build_function_type (ptr_type_node,
                           tree_cons (NULL_TREE, ptr_type_node, endlink));
   
  +  /* APPLE LOCAL PFE */
  +  }
  +
     pedantic_lvalues = pedantic;
   
     make_fname_decl = c_make_fname_decl;
  @@ -3927,24 +3936,24 @@
               {
                 if (deprecated_state != DEPRECATED_UNAVAILABLE_SUPPRESS)
                        warn_deprecated_use (id);
  -              #if 0
  +#if 0
              returned_attrs 
                = chainon (returned_attrs, 
                           build_tree_list (get_identifier ("unavailable"),
                                            NULL_TREE));
  -           #endif
  +#endif
               }
             else 
               {
                 if (deprecated_state != DEPRECATED_SUPPRESS
                     && deprecated_state != DEPRECATED_UNAVAILABLE_SUPPRESS)
                        warn_deprecated_use (id);
  -              #if 0
  +#if 0
              returned_attrs 
                = chainon (returned_attrs, 
                           build_tree_list (get_identifier ("deprecated"),
                                            NULL_TREE));
  -           #endif
  +#endif
              }
           }
         /* APPLE LOCAL end unavailable */
  @@ -7477,55 +7486,10 @@
   }
   
   /* APPLE LOCAL begin PFE */
  -/* Replaces c_init_decl_processing() when doing a pfe load operation.
  -   Create the predefined scalar types of C, and some nodes
  -   representing standard constants (0, 1, (void *) 0).
  -   Initialize the global binding level.
  -   Make definitions for built-in primitive functions.
  -   
  -   Same as c_init_decl_processing () but uses precompiled header.  */
  -
  -void
  -pfe_c_init_decl_processing ()
  -{
  -  /* Use the binding_level structure from the precompiled headers.  */
  -  if (pfe_operation != PFE_LOAD)
  -    /* Actually this is an error. Caller should never call this function
  -       if not loading from the precompiled header.  */
  -    return; 
  -
  -  /* Adds some ggc roots, and reserved words for c-parse.in.  */
  -  c_parse_init ();
  -  
  -  /* Here global_binding_level is already initialized from pfe_compiler_state_ptr.  
*/
  -  global_binding_level->level_chain = current_binding_level;
  -  current_binding_level = global_binding_level;
  -  global_binding_level->keep = keep_next_level_flag;
  -  keep_next_level_flag = 0;
  -  global_binding_level->keep_if_subblocks = keep_next_if_subblocks;
  -  keep_next_if_subblocks = 0;
  -      
  -  /* We must initialize this before any builtin functions (which might have
  -     attributes) are declared.  (c_common_init is too late.)  */
  -  pfe_c_common_nodes_and_builtins ();
  -
  -  pedantic_lvalues = pedantic;
  -
  -  make_fname_decl = c_make_fname_decl;
  -  start_fname_decls ();
  -
  -  /* APPLE LOCAL begin new tree dump */
  -#ifdef ENABLE_DMP_TREE
  -  /* For condensed tree dumps with debugger.  */
  -  c_prev_lang_dump_tree_p = set_dump_tree_p (c_dump_tree_p);
  -  SET_MAX_DMP_TREE_CODE(LAST_C_TREE_CODE);
  -#endif
  -  /* APPLE LOCAL end new tree dump */
  -}
  -
   /* Freeze/thaw struct binding_level.  */
   void
  -pfe_freeze_thaw_binding_level (pp)
  +pfe_freeze_thaw_c_binding_level (hdr, pp)
  +     struct pfe_lang_compiler_state *hdr;
        struct binding_level **pp;
   {
     struct binding_level *p;
  @@ -7538,13 +7502,13 @@
       {
         if (PFE_FREEZING)
        {
  -       pfe_compiler_state_ptr->global_binding_level = global_binding_level;
  -       p = PFE_FREEZE_THAW_PTR (&pfe_compiler_state_ptr->global_binding_level);
  +       hdr->global_binding_level = global_binding_level;
  +       p = PFE_FREEZE_THAW_PTR (&hdr->global_binding_level);
        }
         else
        {
  -       p = PFE_FREEZE_THAW_PTR (&pfe_compiler_state_ptr->global_binding_level);
  -       global_binding_level = pfe_compiler_state_ptr->global_binding_level;
  +       p = PFE_FREEZE_THAW_PTR (&hdr->global_binding_level);
  +       global_binding_level = hdr->global_binding_level;
        }
       } 
     else
  @@ -7578,7 +7542,7 @@
     pfe_freeze_thaw_common_language_function (&p->base);
     PFE_FREEZE_THAW_WALK (p->named_labels);
     PFE_FREEZE_THAW_WALK (p->shadowed_labels);
  -  pfe_freeze_thaw_binding_level (&p->binding_level);
  +  pfe_freeze_thaw_c_binding_level (NULL, &p->binding_level);
   }
   
   /* Set the current_binding_level->names.  */
  @@ -7589,6 +7553,7 @@
     current_binding_level->names = names;
   }
   
  +DEFINE_CHECK_STRUCT_FUNCTION (language_function)
   DEFINE_CHECK_STRUCT_FUNCTION (binding_level)
   /* APPLE LOCAL end PFE */
   
  
  
  
  1.16      +0 -6      gcc3/gcc/c-objc-common.c
  
  Index: c-objc-common.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-objc-common.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- c-objc-common.c   2002/08/07 03:13:05     1.15
  +++ c-objc-common.c   2002/08/16 17:06:54     1.16
  @@ -233,12 +233,6 @@
   c_objc_common_init (filename)
        const char *filename;
   {
  -  /* APPLE LOCAL begin PFE */
  -  /* Use the precompiled headers, if available.  */
  -  if (pfe_operation == PFE_LOAD)
  -    pfe_c_init_decl_processing ();
  -  else
  -  /* APPLE LOCAL end PFE */
     c_init_decl_processing ();
   
     filename = c_common_init (filename);
  
  
  
  1.36      +0 -1      gcc3/gcc/cpplib.c
  
  Index: cpplib.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cpplib.c,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- cpplib.c  2002/08/03 05:28:11     1.35
  +++ cpplib.c  2002/08/16 17:06:54     1.36
  @@ -29,7 +29,6 @@
   /* APPLE LOCAL begin PFE */
   #include "pfe/pfe.h"
   #include "pfe/pfe-header.h"
  -#undef abort
   extern void pfe_find_macro               PARAMS ((const  char *));
   /* APPLE LOCAL end PFE */
   
  
  
  
  1.42      +5 -12     gcc3/gcc/cppmacro.c
  
  Index: cppmacro.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cppmacro.c,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- cppmacro.c        2002/08/07 03:13:07     1.41
  +++ cppmacro.c        2002/08/16 17:06:54     1.42
  @@ -31,7 +31,6 @@
   /* APPLE LOCAL begin PFE */
   #include "pfe/pfe.h"
   #include "pfe/pfe-header.h"
  -#undef abort
   extern void pfe_find_macro               PARAMS ((const  char *));
   /* APPLE LOCAL end PFE */
   
  @@ -1845,13 +1844,11 @@
         printf("  line: %d\n", m->line);
         printf("  paramc: %d\n", m->paramc);
         printf("  count: %d\n", m->count);
  -      printf("  expansion: 0x%x\n", (unsigned)m->expansion);
  +      printf("  expansion: 0x%x\n", (unsigned)m->exp.tokens);
         if (m->fun_like)
        printf("  fun_like\n");
         if (m->variadic)
        printf("  variadic\n");
  -      if (m->disabled)
  -     printf("  disabled\n");
         if (m->syshdr)
        printf("  syshdr\n");
       }
  @@ -1875,17 +1872,16 @@
     /* Freeze/thaw the tokens in the macro expansion.  If there are 
        tokens in the expansion and we get a NULL back from
        PFE_FREEZE_THAW_PTR, then this macro has already been frozen.  */
  -#if 0 /* APPLE MERGE rewrite this for u.iso and u.trad */
  -  if (m->expansion != NULL)
  +  if (m->exp.tokens != NULL)
       {
  -      struct cpp_token *token_orig = m->expansion;
  +      struct cpp_token *token_orig = m->exp.tokens;
         /* Note: we set token here before we freeze or thaw the pointer
            to the expansion.  We do this because, on the load side,
            we want the _frozen_ pointer so that thawing code will not
            think that the token has already been thawed.  Note also
            that we increment this frozen pointer as we go through the
            tokens in the expansion.  */
  -      expansion = PFE_FREEZE_THAW_PTR (&m->expansion);
  +      expansion = PFE_FREEZE_THAW_PTR (&m->exp.tokens);
         if (expansion == NULL)
        return;
         for (i = 0; i < m->count; i++)
  @@ -1896,7 +1892,6 @@
          token_orig++;
        }
       }
  -#endif
   
     /* Freeze/thaw the file name.  */
     pfe_freeze_thaw_ptr_fp (&m->file);
  @@ -1919,13 +1914,11 @@
            printf("    param[%d]: 0x%x '%s'\n", i, params[i], params[i]->ident.str);
           }
         printf("  count: %d\n", m->count);
  -      printf("  expansion: 0x%x\n", (unsigned)m->expansion);
  +      printf("  expansion: 0x%x\n", (unsigned)m->exp.tokens);
         if (m->fun_like)
        printf("  fun_like\n");
         if (m->variadic)
        printf("  variadic\n");
  -      if (m->disabled)
  -     printf("  disabled\n");
         if (m->syshdr)
        printf("  syshdr\n");
       }
  
  
  
  1.47      +5 -7      gcc3/gcc/function.c
  
  Index: function.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/function.c,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- function.c        2002/08/07 03:13:09     1.46
  +++ function.c        2002/08/16 17:06:54     1.47
  @@ -8023,11 +8023,11 @@
   pfe_freeze_thaw_function (fp)
        struct function **fp;
   {
  -  struct function *save_cfun = cfun, *f = (struct function *)PFE_FREEZE_THAW_PTR 
(fp);
  +  struct function *save_cfun = cfun, *f = (struct function *) PFE_FREEZE_THAW_PTR 
(fp);
     int i, j;
     
     if (!f)
  -      return;
  +    return;
     
     cfun = f;  /* some macros may need this, we restore it at the end */
     
  @@ -8035,9 +8035,9 @@
        get nulled out and freed unless it is an inline function.  */
     
     pfe_freeze_thaw_eh_status (&f->eh);
  -  /* f->stmt is cleared at free_after_parsing() time.  That's furtunate
  -     considering the number of structs we would have to freeze/thaw
  -     if it weren't cleared.  Whew!  */
  +  /* f->stmt is cleared at free_after_parsing() time.  That's
  +     fortunate considering the number of structs we would have to
  +     freeze/thaw if it weren't cleared.  Whew!  */
     assert (f->stmt == NULL);
     freeze_thaw_expr_status (&f->expr);
     freeze_thaw_emit_status (&f->emit);
  @@ -8196,8 +8196,6 @@
         q = PFE_FREEZE_THAW_PTR (&q->next);
       }
   }
  -
  -/*-------------------------------------------------------------------*/
   
   DEFINE_CHECK_STRUCT_FUNCTION (function)
   DEFINE_CHECK_STRUCT_FUNCTION (expr_status)
  
  
  
  1.136     +7 -5      gcc3/gcc/gcc.c
  
  Index: gcc.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/gcc.c,v
  retrieving revision 1.135
  retrieving revision 1.136
  diff -u -r1.135 -r1.136
  --- gcc.c     2002/08/09 18:12:55     1.135
  +++ gcc.c     2002/08/16 17:06:54     1.136
  @@ -805,7 +805,7 @@
      understands -MD filename. Do not allow cpp_option to play
      with -MD later. (Because, it will translate -MD into -MF again).  */
   static const char *cpp_precomp_options =
  -" %{MF*:-MD %*} %{!MF:%{MD:-MD %b.d}} %{<MD} %{<MF} %(cpp_options) \
  +" %{MF*:-MD %*} %{!MF:%{MD:-MD %b.d}} %{<MD} %{<MF} %(cpp_unique_options) \
     %{fdebug-gen-index}";
   /* APPLE LOCAL end cpp-precomp */
   
  @@ -816,7 +816,8 @@
   "/* APPLE LOCAL framework headers */"\
    %{!traditional:%{!ftraditional:%{!traditional-cpp:%Q}}}\
    %{CC:%{!E:%eGNU C does not support -CC without using -E}}\
  - %{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*} %{F*} %{P} %{$} %I\
  +"/* APPLE LOCAL cpp-precomp */"\
  + %{nostdinc*} %{C} %{CC} %{v} %{I*} %{F*} %{P} %{$} %I\
    %{MD:-MD %W{!o: %b.d}%W{o*:%.d%*}}\
    %{MMD:-MMD %W{!o: %b.d}%W{o*:%.d%*}}\
    %{M} %{MM} %W{MF*} %{MG} %{MP} %{MQ*} %{MT*}\
  @@ -834,7 +835,8 @@
      options used to set target flags.  Those special target flags settings may
      in turn cause preprocessor symbols to be defined specially.  */
   static const char *cpp_options =
  -"%(cpp_unique_options) %1 %{std*} %{W*&pedantic*} %{w} %{m*} %{f*}\
  +/* APPLE  LOCAL cpp-precomp */
  +"%(cpp_unique_options) %1 %{std*} %{W*&pedantic*} %{w} %{m*} %{f*} %{!Q:-quiet}\
    %{O*} %{undef}";
   
   /* This contains cpp options which are not passed when the preprocessor
  @@ -3768,13 +3770,13 @@
          if (is_cpp_driver)
            add_preprocessor_option ("--help", 6);
             /* APPLE LOCAL begin 2920964 */
  -       #if 0
  +#if 0
          /* Our assembler and linkder do not support --help.  */
             /* APPLE LOCAL end 2920964 */
          add_assembler_option ("--help", 6);
          add_linker_option ("--help", 6);
             /* APPLE LOCAL begin 2920964 */
  -       #endif
  +#endif
             /* APPLE LOCAL end 2920964 */
        }
         else if (strcmp (argv[i], "-ftarget-help") == 0)
  
  
  
  1.146     +2 -2      gcc3/gcc/toplev.c
  
  Index: toplev.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/toplev.c,v
  retrieving revision 1.145
  retrieving revision 1.146
  diff -u -r1.145 -r1.146
  --- toplev.c  2002/08/09 18:12:55     1.145
  +++ toplev.c  2002/08/16 17:06:55     1.146
  @@ -5666,8 +5666,8 @@
   
     /* Is this duplication necessary?  */
     name = ggc_strdup (name);
  -  /* APPLE LOCAL PFE - PFE_SAVESTRING is null when not building for pfe.  */
  -  name = PFE_SAVESTRING ((char *)name);
  +  /* APPLE LOCAL PFE */
  +  name = PFE_SAVESTRING ((char *) name);
     main_input_filename = input_filename = name;
     init_asm_output (name);
   
  
  
  
  1.29      +0 -1      gcc3/gcc/unwind-dw2-fde.c
  
  Index: unwind-dw2-fde.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/unwind-dw2-fde.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- unwind-dw2-fde.c  2002/08/02 10:05:36     1.28
  +++ unwind-dw2-fde.c  2002/08/16 17:06:55     1.29
  @@ -1266,4 +1266,3 @@
   
     return f;
   }
  -
  
  
  
  1.75      +157 -157  gcc3/gcc/varasm.c
  
  Index: varasm.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/varasm.c,v
  retrieving revision 1.74
  retrieving revision 1.75
  diff -u -r1.74 -r1.75
  --- varasm.c  2002/08/08 03:19:53     1.74
  +++ varasm.c  2002/08/16 17:06:55     1.75
  @@ -5110,163 +5110,6 @@
     output_addr_const (asm_out_file, parent);
     fputc ('\n', asm_out_file);
   }
  -
  -/* APPLE LOCAL begin PFE */
  -/* Called by pfe_freeze_thaw_function() to freeze/thaw the varasm_status
  -   struct (private to this file) field of a struct function.  */ 
  -void 
  -pfe_freeze_thaw_varasm_status (vp)
  -     struct varasm_status **vp;
  -{
  -  struct varasm_status *v = PFE_FREEZE_THAW_PTR (vp);
  -  
  -  if (!v)
  -    return;
  -  
  -  /* The array of constant_descriptors pointed to by x_const_rtx_hash_table
  -     are handled as part of free/thawing the constant pool.  So both arrays
  -     and the pointers to them are handled by the one routine.  Also the
  -     x_first_pool and x_last_pool are handled there as well.*/
  -  freeze_thaw_pool_constant (v);
  -}
  -
  -/* Freeze/thaw the varasm_status x_const_rtx_sym_hash_table
  -   pool_constant.  Note that there is a constant_descriptor generated
  -   for every pool_constant and these are hashed into the table pointed
  -   to by the varasm_status's x_const_rtx_hash_table.  Thus when
  -   freeze/thawing the pool_constant's we will also freeze/thaw the
  -   constant_descriptor's.  We need to control the freeze/thawing of the
  -   constant_descriptors from here since the rtx for the constant is
  -   part of the pool_constant entries and we need to know that rtx
  -   in order to handle the u.contents field of their corresponding
  -   constant_descriptor.  */
  -static void 
  -freeze_thaw_pool_constant (v)
  -     struct varasm_status *v;
  -{
  -  int i;
  -  struct pool_constant **x_const_rtx_sym_hash_table, *pool;
  -  struct constant_descriptor_rtx **x_const_rtx_hash_table;
  -    
  -  pool = PFE_FREEZE_THAW_PTR (&v->x_first_pool);
  -  pfe_freeze_thaw_ptr_fp (&v->x_last_pool);
  - 
  -  x_const_rtx_sym_hash_table
  -    = PFE_FREEZE_THAW_PTR (&v->x_const_rtx_sym_hash_table);
  -  if (!x_const_rtx_sym_hash_table)
  -    return;
  -    
  -  x_const_rtx_hash_table = PFE_FREEZE_THAW_PTR (&v->x_const_rtx_hash_table);
  -  
  -  /* With PFE the hash functions are address-independent of the objects
  -     hashed into their slots (as opposed to the non-PFE case).  So all
  -     we need to do is simply freeze/thaw the hash table slots.  We will
  -     do the objects hashed into those slots after this.  */
  -  for (i = 0; i < MAX_RTX_HASH_TABLE; ++i)
  -    {
  -      pfe_freeze_thaw_ptr_fp (&x_const_rtx_hash_table[i]);
  -      pfe_freeze_thaw_ptr_fp (&x_const_rtx_sym_hash_table[i]);
  -    }
  -  
  -  /* There are two links on a pool_constant: the 'next_sym' which
  -     chains all syms that hash to the same x_const_rtx_sym_hash_table
  -     slot, and a 'next' which chains all the pool_constant's.  Here
  -     we follow the full chain using the 'next' links and simply
  -     freeze/thaw the next_sym's.  
  -     
  -     Note that we need to explicitly treat freeze and thaw 
  -     separately because the call to freeze_thaw_constant_descriptor_rtx()
  -     requires that the pool->constant rtx not be in a frozen state.  */
  -  while (pool)
  -    {
  -      if (PFE_FREEZING)
  -        {
  -       freeze_thaw_constant_descriptor_rtx (&pool->desc, pool->constant);
  -       pfe_freeze_ptr (&pool->next_sym);
  -       PFE_FREEZE_THAW_RTX (pool->constant);
  -     }
  -      else /* thawing */
  -        {
  -       PFE_FREEZE_THAW_RTX (pool->constant);
  -       pfe_thaw_ptr (&pool->next_sym);
  -       freeze_thaw_constant_descriptor_rtx (&pool->desc, pool->constant);
  -        }
  -        
  -      pool = PFE_FREEZE_THAW_PTR (&pool->next);
  -    }
  -}
  -
  -/* Freeze/thaw a constant_descriptor_rtx pointed to from a pool_constant
  -   entry.  We only handle the one constant_descriptor_rtx in the
  -   pool_constant.  Since each constant_descriptor_rtx is created at the
  -   same time a pool_constant is created (see force_const_mem() and
  -   record_constant_rtx()) then we will eventually get them all after
  -   we processed all the pool_constants.  
  -   
  -   Note, we need to know the rtx for the constant in order to properly
  -   handle the corresponding constant_descriptor_rtx's u.contents field.  */
  -static void 
  -freeze_thaw_constant_descriptor_rtx (descp, x)
  -     struct constant_descriptor_rtx **descp;
  -     rtx x;
  -{
  -  struct constant_descriptor_rtx *desc = PFE_FREEZE_THAW_PTR (descp);
  -  
  -  if (!desc)
  -    return;
  -
  -  PFE_FREEZE_THAW_PTR (&desc->next);
  -  pfe_freeze_thaw_ptr_fp (&desc->label);
  -  PFE_FREEZE_THAW_RTX (desc->rtl);
  -  freeze_thaw_rtx_const (&(desc->value), x);
  -}
  -
  -/* Freeze/thaw a rtx_const.  This follows the code done in
  -   decode_rtx_const() but here we're only interested in the
  -   un.addr.base rtx field which is the only thing needing
  -   freezing/thawing.  */
  -static void
  -freeze_thaw_rtx_const (value, x)
  -     struct rtx_const *value;
  -     rtx x;
  -{
  -  switch (GET_CODE (x))
  -    {
  -    case CONST_DOUBLE:
  -      break;
  -
  -    /* APPLE LOCAL AltiVec */
  -    case CONST_VECTOR:
  -    case CONST_INT:
  -      break;
  -
  -    /* SYMBOL_REF's are a little deceiving! The code in decode_rtx_const()
  -       which builds these things actually stuffs a char* string pointer
  -       into the un.addr.base under the condition we do here to handle
  -       this case.  */
  -    case SYMBOL_REF:
  -      if (value->kind == RTX_INT && value->un.addr.base != 0)
  -        pfe_freeze_thaw_ptr_fp (&value->un.addr.base);
  -      else
  -        PFE_FREEZE_THAW_RTX (value->un.addr.base);
  -      break;
  -      
  -    case LABEL_REF:
  -    case PC:
  -    case CONST:
  -      PFE_FREEZE_THAW_RTX (value->un.addr.base);
  -      break;
  -
  -    default:
  -      abort ();
  -    }
  -}
  -
  -DEFINE_CHECK_STRUCT_FUNCTION (pool_constant)
  -DEFINE_CHECK_STRUCT_FUNCTION (varasm_status)
  -DEFINE_CHECK_STRUCT_FUNCTION (constant_descriptor_rtx)
  -DEFINE_CHECK_STRUCT_FUNCTION (rtx_const)
  -/* APPLE LOCAL end PFE */
   
   /* The lame default section selector.  */
   
  @@ -5645,5 +5488,162 @@
   
     return local_p;
   }
  +
  +/* APPLE LOCAL begin PFE */
  +/* Called by pfe_freeze_thaw_function() to freeze/thaw the varasm_status
  +   struct (private to this file) field of a struct function.  */ 
  +void 
  +pfe_freeze_thaw_varasm_status (vp)
  +     struct varasm_status **vp;
  +{
  +  struct varasm_status *v = PFE_FREEZE_THAW_PTR (vp);
  +  
  +  if (!v)
  +    return;
  +  
  +  /* The array of constant_descriptors pointed to by x_const_rtx_hash_table
  +     are handled as part of free/thawing the constant pool.  So both arrays
  +     and the pointers to them are handled by the one routine.  Also the
  +     x_first_pool and x_last_pool are handled there as well.*/
  +  freeze_thaw_pool_constant (v);
  +}
  +
  +/* Freeze/thaw the varasm_status x_const_rtx_sym_hash_table
  +   pool_constant.  Note that there is a constant_descriptor generated
  +   for every pool_constant and these are hashed into the table pointed
  +   to by the varasm_status's x_const_rtx_hash_table.  Thus when
  +   freeze/thawing the pool_constant's we will also freeze/thaw the
  +   constant_descriptor's.  We need to control the freeze/thawing of the
  +   constant_descriptors from here since the rtx for the constant is
  +   part of the pool_constant entries and we need to know that rtx
  +   in order to handle the u.contents field of their corresponding
  +   constant_descriptor.  */
  +static void 
  +freeze_thaw_pool_constant (v)
  +     struct varasm_status *v;
  +{
  +  int i;
  +  struct pool_constant **x_const_rtx_sym_hash_table, *pool;
  +  struct constant_descriptor_rtx **x_const_rtx_hash_table;
  +    
  +  pool = PFE_FREEZE_THAW_PTR (&v->x_first_pool);
  +  pfe_freeze_thaw_ptr_fp (&v->x_last_pool);
  + 
  +  x_const_rtx_sym_hash_table
  +    = PFE_FREEZE_THAW_PTR (&v->x_const_rtx_sym_hash_table);
  +  if (!x_const_rtx_sym_hash_table)
  +    return;
  +    
  +  x_const_rtx_hash_table = PFE_FREEZE_THAW_PTR (&v->x_const_rtx_hash_table);
  +  
  +  /* With PFE the hash functions are address-independent of the objects
  +     hashed into their slots (as opposed to the non-PFE case).  So all
  +     we need to do is simply freeze/thaw the hash table slots.  We will
  +     do the objects hashed into those slots after this.  */
  +  for (i = 0; i < MAX_RTX_HASH_TABLE; ++i)
  +    {
  +      pfe_freeze_thaw_ptr_fp (&x_const_rtx_hash_table[i]);
  +      pfe_freeze_thaw_ptr_fp (&x_const_rtx_sym_hash_table[i]);
  +    }
  +  
  +  /* There are two links on a pool_constant: the 'next_sym' which
  +     chains all syms that hash to the same x_const_rtx_sym_hash_table
  +     slot, and a 'next' which chains all the pool_constant's.  Here
  +     we follow the full chain using the 'next' links and simply
  +     freeze/thaw the next_sym's.  
  +     
  +     Note that we need to explicitly treat freeze and thaw 
  +     separately because the call to freeze_thaw_constant_descriptor_rtx()
  +     requires that the pool->constant rtx not be in a frozen state.  */
  +  while (pool)
  +    {
  +      if (PFE_FREEZING)
  +        {
  +       freeze_thaw_constant_descriptor_rtx (&pool->desc, pool->constant);
  +       pfe_freeze_ptr (&pool->next_sym);
  +       PFE_FREEZE_THAW_RTX (pool->constant);
  +     }
  +      else /* thawing */
  +        {
  +       PFE_FREEZE_THAW_RTX (pool->constant);
  +       pfe_thaw_ptr (&pool->next_sym);
  +       freeze_thaw_constant_descriptor_rtx (&pool->desc, pool->constant);
  +        }
  +        
  +      pool = PFE_FREEZE_THAW_PTR (&pool->next);
  +    }
  +}
  +
  +/* Freeze/thaw a constant_descriptor_rtx pointed to from a pool_constant
  +   entry.  We only handle the one constant_descriptor_rtx in the
  +   pool_constant.  Since each constant_descriptor_rtx is created at the
  +   same time a pool_constant is created (see force_const_mem() and
  +   record_constant_rtx()) then we will eventually get them all after
  +   we processed all the pool_constants.  
  +   
  +   Note, we need to know the rtx for the constant in order to properly
  +   handle the corresponding constant_descriptor_rtx's u.contents field.  */
  +static void 
  +freeze_thaw_constant_descriptor_rtx (descp, x)
  +     struct constant_descriptor_rtx **descp;
  +     rtx x;
  +{
  +  struct constant_descriptor_rtx *desc = PFE_FREEZE_THAW_PTR (descp);
  +  
  +  if (!desc)
  +    return;
  +
  +  PFE_FREEZE_THAW_PTR (&desc->next);
  +  pfe_freeze_thaw_ptr_fp (&desc->label);
  +  PFE_FREEZE_THAW_RTX (desc->rtl);
  +  freeze_thaw_rtx_const (&(desc->value), x);
  +}
  +
  +/* Freeze/thaw a rtx_const.  This follows the code done in
  +   decode_rtx_const() but here we're only interested in the
  +   un.addr.base rtx field which is the only thing needing
  +   freezing/thawing.  */
  +static void
  +freeze_thaw_rtx_const (value, x)
  +     struct rtx_const *value;
  +     rtx x;
  +{
  +  switch (GET_CODE (x))
  +    {
  +    case CONST_DOUBLE:
  +      break;
  +
  +    /* APPLE LOCAL AltiVec */
  +    case CONST_VECTOR:
  +    case CONST_INT:
  +      break;
  +
  +    /* SYMBOL_REF's are a little deceiving! The code in decode_rtx_const()
  +       which builds these things actually stuffs a char* string pointer
  +       into the un.addr.base under the condition we do here to handle
  +       this case.  */
  +    case SYMBOL_REF:
  +      if (value->kind == RTX_INT && value->un.addr.base != 0)
  +        pfe_freeze_thaw_ptr_fp (&value->un.addr.base);
  +      else
  +        PFE_FREEZE_THAW_RTX (value->un.addr.base);
  +      break;
  +      
  +    case LABEL_REF:
  +    case PC:
  +    case CONST:
  +      PFE_FREEZE_THAW_RTX (value->un.addr.base);
  +      break;
  +
  +    default:
  +      abort ();
  +    }
  +}
  +
  +DEFINE_CHECK_STRUCT_FUNCTION (pool_constant)
  +DEFINE_CHECK_STRUCT_FUNCTION (varasm_status)
  +DEFINE_CHECK_STRUCT_FUNCTION (constant_descriptor_rtx)
  +DEFINE_CHECK_STRUCT_FUNCTION (rtx_const)
  +/* APPLE LOCAL end PFE */
   
   #include "gt-varasm.h"
  
  
  
  1.32      +1 -1      gcc3/gcc/cp/class.c
  
  Index: class.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/class.c,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- class.c   2002/08/07 03:13:23     1.31
  +++ class.c   2002/08/16 17:06:58     1.32
  @@ -5675,7 +5675,7 @@
     current_class_stack 
       = (class_stack_node_t) xmalloc (current_class_stack_size 
                                    * sizeof (struct class_stack_node));
  -  /* APPLE LOCAL PFE - PFE_VARRAY is pfe indicator or null */   
  +  /* APPLE LOCAL PFE */
     VARRAY_TREE_INIT (local_classes, 8, PFE_VARRAY "local_classes");
   
     /* APPLE LOCAL PFE */
  
  
  
  1.11      +0 -2      gcc3/gcc/cp/cp-idebug.c
  
  Index: cp-idebug.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/cp-idebug.c,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- cp-idebug.c       2002/08/07 03:13:23     1.10
  +++ cp-idebug.c       2002/08/16 17:06:59     1.11
  @@ -70,8 +70,6 @@
   fn_nodei( OVL_USED )
   fn_nodei( BASELINK_P )
   fn_nodei( SET_BASELINK_P )
  -fn_noden( WRAPPER_PTR )
  -fn_nodei( WRAPPER_INT )
   fn_1( SRCLOC_FILE, const char *, tree )
   fn_nodei( SRCLOC_LINE )
   fn_noden( IDENTIFIER_NAMESPACE_BINDINGS )
  
  
  
  1.66      +0 -51     gcc3/gcc/cp/cp-tree.h
  
  Index: cp-tree.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/cp-tree.h,v
  retrieving revision 1.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- cp-tree.h 2002/08/11 19:22:06     1.65
  +++ cp-tree.h 2002/08/16 17:06:59     1.66
  @@ -953,47 +953,6 @@
      is zero and INTERFACE_ONLY is zero, it means that we are responsible
      for exporting definitions that others might need.  */
   extern int interface_only, interface_unknown;
  -
  -/* APPLE MERGE move these to common area */
  -/* APPLE LOCAL begin -findirect-virtual-calls 2001-10-30 sts */
  -/* Nonzero if all calls to virtual functions should cause indirection
  -   through a vtable.  */
  -
  -extern int flag_indirect_virtual_calls;
  -/* APPLE LOCAL end -findirect-virtual-calls 2001-10-30 sts */
  -
  -/* APPLE LOCAL begin -fterminated-vtables */
  -/* Nonzero to terminate vtables with a unique value, currently zero.
  -   Used by the darwin kernel to find ends of vtables for patching
  -   when loading drivers dynamically.  */
  -
  -extern int flag_terminated_vtables;
  -/* APPLE LOCAL end -fterminated-vtables */
  -
  -/* APPLE LOCAL begin 2.95-compatibility stuff turly */
  -/* Nonzero if we're compiling in a gcc2.95-compatibility mode.
  -   Implies -fterminated-vtables and -findirect-virtual-calls,
  -   only-deleting-destructor support, 2.95 ptmfs, vptr initialisation,
  -   constructors-returning-this...  */
  - 
  -extern int flag_apple_kext;
  -/* APPLE LOCAL end 2.95-compatibility stuff turly */
  -
  -/* APPLE LOCAL begin structor thunks */
  -/* Nonzero if we prefer to clone con/de/structors.
  -   Alternative is to gen multiple tiny thunk-esque things that call/jump to a 
unified con/de/structor.
  -   This is a classic size/speed tradeoff.  */
  -extern int flag_clone_structors;
  -/* APPLE LOCAL begin structor thunks */
  -
  -/* APPLE LOCAL begin private extern  Radar 2872481 ilr */
  -/* Nonzero if -fpreproceessed specified.  This is needed by init_reswords()
  -   so that it can make __private_extern__ have the same rid code as extern
  -   when -fpreprocessed is specified.  Normally there is a -D on the command
  -   line for this.  But if -fpreprocessed was specified then macros aren't
  -   expanded.  So we fake the token value out using the rid code.  */
  -extern int flag_preprocessed;
  -/* APPLE LOCAL end private extern  Radar 2872481 ilr */
   
   /* C++ language-specific tree codes.  */
   #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM,
  @@ -3147,16 +3106,6 @@
                             path. This might not be the canonical
                             binfo. */
   } base_kind;
  -
  -/* APPLE MERGE move these */
  -/* APPLE LOCAL  -Wfour-char-constants  */
  -/* Warn about four-char literals (e.g., MacOS-style OSTypes: 'APPL'.)  */
  -extern int warn_four_char_constants;
  -
  -/* APPLE LOCAL begin AltiVec */
  -/* Nonzero means warn about deprecated use of 'long' vector types.  */
  -extern int warn_altivec_long_deprecated;  /* radar 2841709 */
  -/* APPLE LOCAL end AltiVec */
   
   /* Set by add_implicitly_declared_members() to keep those members from
      being flagged as deprecated or reported as using deprecated
  
  
  
  1.109     +87 -133   gcc3/gcc/cp/decl.c
  
  Index: decl.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/decl.c,v
  retrieving revision 1.108
  retrieving revision 1.109
  diff -u -r1.108 -r1.109
  --- decl.c    2002/08/07 03:13:24     1.108
  +++ decl.c    2002/08/16 17:06:59     1.109
  @@ -616,7 +616,7 @@
   {
     /* NOSTRICT */
     /* APPLE LOCAL PFE */
  -  return (struct binding_level *) 
  +  return (struct cp_binding_level *) 
          GGC_ALLOC (sizeof (struct cp_binding_level), PFE_ALLOC_BINDING_LEVEL);
   }
   
  @@ -6544,11 +6544,22 @@
     tree void_ftype_ptr;
   
     /* Create all the identifiers we need.  */
  +  /* APPLE LOCAL PFE */
  +  if (pfe_operation != PFE_LOAD)
     initialize_predefined_identifiers ();
   
     /* Fill in back-end hooks.  */
     lang_missing_noreturn_ok_p = &cp_missing_noreturn_ok_p;
   
  +  
  +  /* APPLE LOCAL begin PFE */
  +  if (pfe_operation == PFE_LOAD)
  +    {
  +      current_lang_name = lang_name_cplusplus;
  +      current_namespace = global_namespace;
  +    }
  +  else {
  +  /* APPLE LOCAL end PFE */
     /* Create the global variables.  */
     push_to_top_level ();
   
  @@ -6557,6 +6568,8 @@
     push_namespace (get_identifier ("::"));
     global_namespace = current_namespace;
     current_lang_name = NULL_TREE;
  +  /* APPLE LOCAL PFE */
  +  }
   
     /* Adjust various flags based on command-line settings.  */
     if (! flag_permissive && ! pedantic)
  @@ -6572,6 +6585,46 @@
         flag_inline_functions = 0;
       }
   
  +#if 1 /* APPLE MERGE check the need for all this carefully */
  +  if (pfe_operation == PFE_LOAD)
  +    {
  +      /* In C++, we never create builtin functions whose name does not
  +      begin with `__'.  Users should be using headers to get prototypes
  +      in C++.  It would be nice if we could warn when `-fbuiltin' is
  +      used explicitly, but we do not have that information.  */
  +      flag_no_builtin = 1;
  +
  +      /* Make the binding_level structure for global names.  */
  +      /* global_binding_level is already thawed from the PFE.  */
  +      current_function_decl = NULL_TREE;
  +      free_binding_level = NULL_BINDING_LEVEL;
  +      current_binding_level = global_binding_level;
  +    }
  +#endif
  +  if (pfe_operation == PFE_LOAD)
  +    {
  +      /* Process the global declarations received directly from the
  +      precompiled header.  The aim to remove TREE_ASM_WRITTEN
  +      (decl) marker, if set.  This enables the compiler to emit the
  +      globals again.  */
  +      tree precompiled_decls = getdecls ();
  +      int len = list_length (precompiled_decls);
  +      int i;
  +      tree decl;
  +
  +      /* Process the decls in reverse order--earliest first.
  +      Put them into VEC from back to front, then take out from front.  */
  + 
  +      for (i = 0, decl = precompiled_decls; i < len; i++, decl = TREE_CHAIN (decl))
  +     {
  +       /* If TREE_ASM_WRITTEN is set then reset it.
  +          This will enable the emit during rest_of_compilation().  */
  +       if (TREE_ASM_WRITTEN (decl) == 1)
  +         TREE_ASM_WRITTEN (decl) = 0;
  +     }
  +    }
  +  else {
  +
     /* Initially, C.  */
     current_lang_name = lang_name_c;
   
  @@ -6639,11 +6692,6 @@
   
     vtt_parm_type = build_pointer_type (const_ptr_type_node);
   
  -#if 0 /* APPLE MERGE what to do with this? */
  -  /* Removed this since convert_type_from_ellipsis isn't used anywhere (?) */
  -  lang_type_promotes_to = convert_type_from_ellipsis;
  -#endif
  -
     void_ftype = build_function_type (void_type_node, void_list_node);
     void_ftype_ptr = build_function_type (void_type_node,
                                        tree_cons (NULL_TREE,
  @@ -6693,9 +6741,22 @@
     global_type_node = make_node (LANG_TYPE);
     record_unknown_type (global_type_node, "global type");
   
  +  /* APPLE LOCAL PFE */
  +  }
  +  
     /* Now, C++.  */
     current_lang_name = lang_name_cplusplus;
   
  +  /* APPLE LOCAL PFE */
  +  if (pfe_operation == PFE_LOAD)
  +    {
  +#if 0 /* APPLE MERGE need this? */      
  +      lang_attribute_table = cp_attribute_table;
  +#endif
  +      pfe_c_common_nodes_and_builtins ();
  +    }
  +  else {
  +
     {
       tree bad_alloc_type_node, newtype, deltype;
       tree ptr_ftype_sizetype;
  @@ -6723,13 +6784,21 @@
     abort_fndecl
       = build_library_fn_ptr ("__cxa_pure_virtual", void_ftype);
   
  +  /* APPLE LOCAL PFE */
  +  }
  +
     /* Perform other language dependent initializations.  */
     init_class_processing ();
     init_search_processing ();
     init_rtti_processing ();
   
     if (flag_exceptions)
  -    init_exception_processing ();
  +    {
  +      if (pfe_operation == PFE_LOAD)
  +     pfe_init_exception_processing ();
  +      else
  +     init_exception_processing ();
  +    }
   
     if (! supports_one_only ())
       flag_weak = 0;
  @@ -7027,6 +7096,7 @@
   }
   
   /* APPLE LOCAL begin AltiVec */
  +tree lang_build_type_variant PARAMS ((tree, int, int));
   tree
   lang_build_type_variant (type, constp, volatilep)
        tree type;
  @@ -14203,10 +14273,6 @@
     /* If we are (erroneously) defining a function that we have already
        defined before, wipe out what we knew before.  */
     if (!DECL_PENDING_INLINE_P (decl1))
  -#if 0 /* APPLE MERGE need to free something? */
  -      /* APPLE LOCAL PFE - expand to pfe_free or free  */
  -      PFE_FREE (DECL_SAVED_FUNCTION_DATA (decl1));
  -#endif
       DECL_SAVED_FUNCTION_DATA (decl1) = NULL;
   
     if (ctype && !doing_friend && !DECL_STATIC_FUNCTION_P (decl1))
  @@ -14450,8 +14516,8 @@
        function.  */
     if (current_function_cannot_inline)
       {
  -      /* APPLE LOCAL PFE - PFE_SAVESTRING is null when not building for pfe.  */
  -      f->cannot_inline = PFE_SAVESTRING ((char *)current_function_cannot_inline);
  +      /* APPLE LOCAL PFE */
  +      f->cannot_inline = PFE_SAVESTRING ((char *) current_function_cannot_inline);
         DECL_INLINE (decl) = 0;
       }
   }
  @@ -15207,128 +15273,19 @@
   }
   
   /* APPLE LOCAL begin PFE */
  -/* Replaces cxx_init_decl_processing() when doing a pfe load operation.  */
  -void
  -pfe_cxx_init_decl_processing ()
  -{
  -#if 0 /* APPLE MERGE reconcile with regular function */
  -  /* Fill in back-end hooks.  */
  -  init_lang_status = &push_cp_function_context;
  -  free_lang_status = &pop_cp_function_context;
  -  mark_lang_status = &mark_cp_function_context;
  -  lang_missing_noreturn_ok_p = &cp_missing_noreturn_ok_p;
  -
  -  /* Add tree roots in ggc.  */
  -  cp_parse_init ();
  -  init_decl2 ();
  -  init_pt ();
  - 
  -  /* Create the global variables.  */
  -  /* For PFE, we don't need to call push_to_top_level().
  -     Instead we only do the pertinent stuff from that function.  */
  -  current_lang_name = lang_name_cplusplus;
  -  current_namespace = global_namespace;
  -
  -  /* Init global namespace and current namespace.
  -     global_namespace is already thawed from the precompiled header.  */
  -  current_namespace =  global_namespace;
  -
  -  /* Adjust various flags based on command-line settings.  */
  -  if (! flag_permissive && ! pedantic)
  -    flag_pedantic_errors = 1;
  -  if (!flag_no_inline)
  -    {
  -      flag_inline_trees = 1;
  -      flag_no_inline = 1;
  -    }
  -  if (flag_inline_functions)
  -    {
  -      flag_inline_trees = 2;
  -      flag_inline_functions = 0;
  -    }
  -
  -  /* In C++, we never create builtin functions whose name does not
  -     begin with `__'.  Users should be using headers to get prototypes
  -     in C++.  It would be nice if we could warn when `-fbuiltin' is
  -     used explicitly, but we do not have that information.  */
  -  flag_no_builtin = 1;
  -
  -  /* Make the binding_level structure for global names.  */
  -  /* global_binding_level is already thawed from the PFE.  */
  -  current_function_decl = NULL_TREE;
  -  free_binding_level = NULL_BINDING_LEVEL;
  -  current_binding_level = global_binding_level;
  -
  -  /* Process the global declarations received directly from the precompiled header.
  -     The aim to remove TREE_ASM_WRITTEN (decl) marker, if set.
  -     This enables the compiler to emit the globals again.  */
  -  {  
  -     tree precompiled_decls = getdecls();
  -     int len = list_length (precompiled_decls);
  -     int i;
  -     tree decl;
  -
  -     /* Process the decls in reverse order--earliest first.
  -        Put them into VEC from back to front, then take out from front.  */
  - 
  -     for (i = 0, decl = precompiled_decls; i < len; i++, decl = TREE_CHAIN (decl))
  -       {   
  -         /* If TREE_ASM_WRITTEN is set then reset it.
  -            This will enable the emit during rest_of_compilation().  */
  -         if (TREE_ASM_WRITTEN (decl) == 1)
  -           TREE_ASM_WRITTEN (decl) = 0;
  -       }  
  -  }
  -
  -  /* Now, C++.  */
  -  current_lang_name = lang_name_cplusplus;
  -
  -  lang_attribute_table = cp_attribute_table;
  -  
  -  pfe_c_common_nodes_and_builtins ();
  -
  -  /* Perform other language dependent initializations.  */
  -  init_class_processing ();
  -  init_init_processing ();
  -  init_search_processing ();    /* Intializes search_obstack.  */
  -
  -  if (flag_exceptions)
  -    pfe_init_exception_processing ();
  -   
  -  if (! supports_one_only ())
  -    flag_weak = 0;
  -  
  -  make_fname_decl = cp_make_fname_decl;
  -  start_fname_decls ();
  -
  -  /* Show we use EH for cleanups.  */
  -  using_eh_for_cleanups ();
  -     
  -  lang_attribute_table = cp_attribute_table;
  -  
  -  /* Maintain consistency.  Perhaps we should just complain if they
  -     say -fwritable-strings?  */
  -  if (flag_writable_strings)
  -    flag_const_strings = 0;
  -
  -  ggc_add_root (&global_binding_level, 1, sizeof global_binding_level,
  -                mark_binding_level);
  -  ggc_add_root (&scope_chain, 1, sizeof scope_chain, &mark_saved_scope);
  -#endif
  -}
  -
   /* Freeze/thaw struct binding_level.  */
   void
  -pfe_freeze_thaw_binding_level (pp)
  -     struct binding_level **pp;
  +pfe_freeze_thaw_cp_binding_level (pp)
  +     struct cp_binding_level **pp;
   {
  -  struct binding_level *p;
  +  struct cp_binding_level *p;
     
     /* By convention, pp is NULL when called from pfe_freeze_thaw_compiler_state()
        to freeze/thaw the global_binding_level and move it to or from the pfe
        header.  */
        
     if (pp == NULL) {
  +#if 0 /* APPLE MERGE this is now lang-specific */
       if (PFE_FREEZING)
         {
           pfe_compiler_state_ptr->global_binding_level = global_binding_level;
  @@ -15339,12 +15296,12 @@
        p = PFE_FREEZE_THAW_PTR (&pfe_compiler_state_ptr->global_binding_level);
           global_binding_level = pfe_compiler_state_ptr->global_binding_level;
         }
  +#endif
     } else
       p = PFE_FREEZE_THAW_PTR (pp);
       
     while (p)
       {
  -#if 0 /* APPLE MERGE structure changed */
         PFE_FREEZE_THAW_WALK (p->names);
         PFE_FREEZE_THAW_WALK (p->tags);
         PFE_FREEZE_THAW_WALK (p->usings);
  @@ -15357,7 +15314,6 @@
         PFE_FREEZE_THAW_WALK (p->dead_vars_from_for);
          
         p = PFE_FREEZE_THAW_PTR (&p->level_chain);
  -#endif
       }
   }
   
  @@ -15370,7 +15326,7 @@
     
     while (p)
       {
  -      pfe_freeze_thaw_binding_level (&p->binding_level);
  +      pfe_freeze_thaw_cp_binding_level (&p->binding_level);
         PFE_FREEZE_THAW_WALK (p->names_in_scope);              /* NEEDED? */
         PFE_FREEZE_THAW_WALK (p->label_decl);          /* NEEDED? */
         pfe_freeze_thaw_ptr_fp (&p->filename_o_goto);
  @@ -15388,7 +15344,7 @@
     
     while (p)
       {
  -      pfe_freeze_thaw_binding_level (&p->binding_level);
  +      pfe_freeze_thaw_cp_binding_level (&p->binding_level);
         PFE_FREEZE_THAW_WALK (p->names_in_scope);              /* NEEDED? */
         PFE_FREEZE_THAW_WALK (p->old_value);           /* NEEDED? */
         PFE_FREEZE_THAW_WALK (p->label_decl);          /* NEEDED? */
  @@ -15442,9 +15398,7 @@
     anon_cnt = cnt;
   }
   
  -#if 0 /* APPLE MERGE */
  -DEFINE_CHECK_STRUCT_FUNCTION (binding_level)
  -#endif
  +DEFINE_CHECK_STRUCT_FUNCTION (cp_binding_level)
   DEFINE_CHECK_STRUCT_FUNCTION (named_label_use_list)
   DEFINE_CHECK_STRUCT_FUNCTION (named_label_list)
   /* APPLE LOCAL end PFE */
  
  
  
  1.85      +1 -3      gcc3/gcc/cp/decl2.c
  
  Index: decl2.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/decl2.c,v
  retrieving revision 1.84
  retrieving revision 1.85
  diff -u -r1.84 -r1.85
  --- decl2.c   2002/08/08 03:20:01     1.84
  +++ decl2.c   2002/08/16 17:07:00     1.85
  @@ -350,14 +350,12 @@
          warning ("-fname-mangling-version is no longer supported");
          return 1;
        }
  -#if 0 /* APPLE MERGE what is this for? */
         /* APPLE LOCAL begin private extern  Radar 2872481 ilr */
         else if (! strcmp (p, "preprocessed"))
                flag_preprocessed = 1;
         else if (! strcmp (p, "no-preprocessed"))
                flag_preprocessed = 0;
         /* APPLE LOCAL end private extern  Radar 2872481 ilr */
  -#endif
         else if ((option_value = skip_leading_substring (p, "no-builtin-")))
        disable_builtin_function (option_value);
         else if (dump_switch_p (p))
  @@ -1229,7 +1227,7 @@
     if (! processing_template_decl)
       {
         if (!pending_statics)
  -     /* APPLE LOCAL PFE - PFE_VARRAY is pfe indicator or null */
  +     /* APPLE LOCAL PFE */
        VARRAY_TREE_INIT (pending_statics, 32, PFE_VARRAY "pending_statics");
         VARRAY_PUSH_TREE (pending_statics, decl);
       }
  
  
  
  1.53      +0 -6      gcc3/gcc/cp/lex.c
  
  Index: lex.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/lex.c,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- lex.c     2002/08/14 21:39:42     1.52
  +++ lex.c     2002/08/16 17:07:00     1.53
  @@ -736,12 +736,6 @@
     TREE_TYPE (enum_type_node) = enum_type_node;
     ridpointers[(int) RID_ENUM] = enum_type_node;
   
  -  /* APPLE LOCAL begin PFE */
  -  /* Use the precompiled headers, if available.  */
  -  if (pfe_operation == PFE_LOAD)
  -      pfe_cxx_init_decl_processing ();
  -  else
  -  /* APPLE LOCAL end PFE */
     cxx_init_decl_processing ();
   
     /* Create the built-in __null node.  */
  
  
  
  1.29      +1 -1      gcc3/gcc/cp/pt.c
  
  Index: pt.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/pt.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- pt.c      2002/08/07 03:13:25     1.28
  +++ pt.c      2002/08/16 17:07:00     1.29
  @@ -381,7 +381,7 @@
     /* Remember how many levels of template parameters we pushed so that
        we can pop them later.  */
     if (!inline_parm_levels)
  -    /* APPLE LOCAL PFE - PFE_VARRAY is pfe indicator or null */   
  +    /* APPLE LOCAL PFE */
       VARRAY_INT_INIT (inline_parm_levels, 4, PFE_VARRAY "inline_parm_levels");
     if (inline_parm_levels_used == inline_parm_levels->num_elements)
       VARRAY_GROW (inline_parm_levels, 2 * inline_parm_levels_used);
  
  
  
  1.39      +0 -4      gcc3/gcc/cp/semantics.c
  
  Index: semantics.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/semantics.c,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- semantics.c       2002/08/07 03:13:25     1.38
  +++ semantics.c       2002/08/16 17:07:00     1.39
  @@ -2723,10 +2723,6 @@
            function; we need the named return value info for
            cp_copy_res_decl_for_inlining.  */
         if (! DECL_INLINE (fn))
  -#if 0 /* APPLE MERGE do we need this? */
  -       /* APPLE LOCAL PFE - expand to pfe_free or free  */
  -       PFE_FREE (DECL_SAVED_FUNCTION_DATA (fn));
  -#endif
        DECL_SAVED_FUNCTION_DATA (fn) = NULL;
       }
   
  
  
  
  1.37      +3 -8      gcc3/gcc/cp/spew.c
  
  Index: spew.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/spew.c,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- spew.c    2002/08/14 21:39:42     1.36
  +++ spew.c    2002/08/16 17:07:01     1.37
  @@ -1676,28 +1676,23 @@
   }
   
   /* APPLE LOCAL begin PFE */
  +/* APPLE MERGE check that this really works */
   /* Freeze/thaw struct unparsed_text.  */
   void 
   pfe_freeze_thaw_unparsed_text (pp)
        struct unparsed_text **pp;
   {
  -#if 0 /* APPLE MERGE */
  -  struct unparsed_text *p = (struct unparsed_text *)PFE_FREEZE_THAW_PTR (pp);
  +  struct unparsed_text *p = (struct unparsed_text *) PFE_FREEZE_THAW_PTR (pp);
     
     while (p)
       {
         PFE_FREEZE_THAW_WALK (p->decl);                        /* NEEDED? */
  -      pfe_freeze_thaw_ptr_fp (&p->filename);
  -      pfe_freeze_thaw_ptr_fp (&p->pos);
  -      pfe_freeze_thaw_ptr_fp (&p->limit);
  +      pfe_freeze_thaw_ptr_fp (&p->locus);
   
         p = (struct unparsed_text *)PFE_FREEZE_THAW_PTR (&p->next);
         /* FIXME: Freeze/thaw tokens? */
       }
  -#endif
   }
  -
  -/*-------------------------------------------------------------------*/
   
   DEFINE_CHECK_STRUCT_FUNCTION (unparsed_text)
   /* APPLE LOCAL end PFE */
  
  
  
  1.7       +12 -10    gcc3/gcc/pfe/c-freeze-thaw.c
  
  Index: c-freeze-thaw.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/c-freeze-thaw.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- c-freeze-thaw.c   2002/08/07 03:13:31     1.6
  +++ c-freeze-thaw.c   2002/08/16 17:07:03     1.7
  @@ -1,6 +1,6 @@
  -/* APPLE LOCAL PFE */
  +/* APPLE LOCAL file PFE */
   /* Freeze/thaw C-specific trees and other data.
  -   Copyright (C) 2001  Free Software Foundation, Inc.
  +   Copyright (C) 2001, 2002  Free Software Foundation, Inc.
      Contributed by Ira L. Ruben ([EMAIL PROTECTED])
   
   This file is part of GNU CC.
  @@ -46,7 +46,7 @@
   
     /* Initialize the language specific compiler state */
     if (pfe_operation == PFE_DUMP)
  -    pfe_compiler_state_ptr->lang_specific  = (struct pfe_lang_compiler_state *)
  +    pfe_compiler_state_ptr->lang_specific = (struct pfe_lang_compiler_state *)
         pfe_calloc (1, sizeof (struct pfe_lang_compiler_state));
   }
   
  @@ -57,8 +57,10 @@
   {
     struct pfe_lang_compiler_state *hdr;
     
  -  hdr = (struct pfe_lang_compiler_state *)pfe_freeze_thaw_ptr_fp (pp);
  +  hdr = (struct pfe_lang_compiler_state *) pfe_freeze_thaw_ptr_fp (pp);
     
  +  pfe_freeze_thaw_c_binding_level (hdr, NULL);
  +
     pfe_freeze_thaw_c_lang_globals (hdr);
   }
   
  @@ -82,13 +84,13 @@
     switch (TREE_CODE (node))
       {
         case FUNCTION_DECL:
  -             #if 0
  +#if 0
                /* Moved to common code in freeze-thaw.c  */
           if (DECL_LANG_SPECIFIC (node))
             {
                    PFE_FREEZE_THAW_WALK (DECL_SAVED_TREE (node));
                  }
  -             #endif
  +#endif
        return 0; /* let normal processing continue */
        
         default:
  @@ -104,18 +106,18 @@
     /* no TYPE_LANG_SPECIFIC (node) for C */
     /* FIXME?: c-tree.h has struct lang_type but it appears to be unused  */
       
  -  #if 0
  +#if 0
     switch (TREE_CODE (node))
       {
         default:
           break;
       }
  -  #endif
  +#endif
     
     return 0; /* let normal processing continue */
   }
   
  -/* Handle 'c' and 'x' nodes */
  +/* Handle 'c' and 'x' nodes.  */
   int 
   c_pfe_freeze_thaw_special (node)
        tree node;
  @@ -174,6 +176,6 @@
   {
     int i;
     
  -  for (i = 0; i < (int)ARRAY_SIZE (struct_check_functions) - 1; ++i)
  +  for (i = 0; i < (int) ARRAY_SIZE (struct_check_functions) - 1; ++i)
       (*struct_check_functions[i]) (assumed_struct_size[i]);
   }
  
  
  
  1.7       +9 -2      gcc3/gcc/pfe/c-freeze-thaw.h
  
  Index: c-freeze-thaw.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/c-freeze-thaw.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- c-freeze-thaw.h   2002/08/07 03:13:32     1.6
  +++ c-freeze-thaw.h   2002/08/16 17:07:03     1.7
  @@ -1,6 +1,6 @@
  -/* APPLE LOCAL PFE */
  +/* APPLE LOCAL file PFE */
   /* Freeze/thaw C-specific trees and other data.
  -   Copyright (C) 2001  Free Software Foundation, Inc.
  +   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
      Contributed by Apple Computer Inc.
   
   This file is part of GNU CC.
  @@ -30,12 +30,19 @@
   
   struct pfe_lang_compiler_state
   {
  +  /* root for the all the decls and other stuff...  */
  +  struct binding_level *global_binding_level;
  +
     /* globals from c-objc-common.c.  */
     varray_type deferred_fns;
   };
   
   /* In c-lang.c */
   extern void pfe_freeze_thaw_c_lang_globals PARAMS ((struct pfe_lang_compiler_state 
*));
  +
  +/* c-decl.c */
  +extern void pfe_freeze_thaw_c_binding_level PARAMS ((struct pfe_lang_compiler_state 
*,
  +                                                  struct binding_level **));
   
   /* Language hooks (in c-freeze-thaw.c).  */
   extern void c_pfe_lang_init           PARAMS ((int));
  
  
  
  1.12      +14 -30    gcc3/gcc/pfe/cp-freeze-thaw.c
  
  Index: cp-freeze-thaw.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/cp-freeze-thaw.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- cp-freeze-thaw.c  2002/08/07 03:13:32     1.11
  +++ cp-freeze-thaw.c  2002/08/16 17:07:03     1.12
  @@ -175,7 +175,7 @@
       {
         case NAMESPACE_DECL:
           if (ld) 
  -       pfe_freeze_thaw_binding_level (&NAMESPACE_LEVEL (node));
  +       pfe_freeze_thaw_cp_binding_level (&NAMESPACE_LEVEL (node));
                PFE_FREEZE_THAW_WALK (DECL_NAMESPACE_USING (node));
                PFE_FREEZE_THAW_WALK (DECL_NAMESPACE_USERS (node));
                return 1;
  @@ -364,7 +364,7 @@
          
          case CPLUS_BINDING:
            if (BINDING_HAS_LEVEL_P (node))
  -           pfe_freeze_thaw_binding_level (&(((struct 
tree_binding*)node)->scope.level));
  +           pfe_freeze_thaw_cp_binding_level (&(((struct 
tree_binding*)node)->scope.level));
            else
              PFE_FREEZE_THAW_WALK (BINDING_SCOPE (node));              /* NEEDED? */
            PFE_FREEZE_THAW_WALK (BINDING_VALUE (node));                /* NEEDED? */
  @@ -376,16 +376,10 @@
            PFE_FREEZE_THAW_WALK (OVL_CHAIN (node));            /* NEEDED? */
            return 1;
           
  -#if 0 /* APPLE MERGE figure out what to do with this */
          case WRAPPER:
  -         /* FIXME?:�HOW DO I HANDLE WRAPPER_PTR VS. WRAPPER_INT ? */
  -         /* Currently it appears that WRAPPER_INT is never used in C++
  -            nor is routine that creates it -- build_int_wrapper().
  -            Therefore I will unconditionally always assume we have
  -            the pointer variant.  */
  -         pfe_freeze_thaw_ptr_fp (&WRAPPER_PTR (node));
  +      /* APPLE MERGE need a freeze/thaw for z_candidate? */
            return 1;
  -#endif
  +
          case SRCLOC:
            pfe_freeze_thaw_ptr_fp (&SRCLOC_FILE (node));
            return 1;
  @@ -395,8 +389,6 @@
      }
   }
   
  -/*-------------------------------------------------------------------*/
  -
   /* The routines below here are all to handle freezing/thawing of data
      specific to C++ that are not trees (although tree fields could
      point to this stuff).  */
  @@ -406,15 +398,14 @@
   pfe_freeze_thaw_language_function (pp)
        struct language_function **pp;
   {
  -#if 0 /* APPLE MERGE diddle language functions */
  -  tree *node;
  -  struct cp_language_function *p;
  +  struct language_function *p;
     
  -  p = (struct cp_language_function *)PFE_FREEZE_THAW_PTR (pp);
  +  p = (struct language_function *) PFE_FREEZE_THAW_PTR (pp);
     if (!p)
       return;
       
     pfe_freeze_thaw_common_language_function (&p->base);
  +
     PFE_FREEZE_THAW_WALK (p->x_dtor_label);
     PFE_FREEZE_THAW_WALK (p->x_current_class_ptr);
     PFE_FREEZE_THAW_WALK (p->x_current_class_ref);
  @@ -423,15 +414,13 @@
     PFE_FREEZE_THAW_WALK (p->x_vtt_parm);
     PFE_FREEZE_THAW_WALK (p->x_return_value);
     
  -  node = (tree *)PFE_FREEZE_THAW_PTR (&p->x_vcalls_possible_p);
  -  PFE_FREEZE_THAW_WALK (*node);
  -  
     pfe_freeze_thaw_named_label_use_list (&p->x_named_label_uses);
     pfe_freeze_thaw_named_label_list (&p->x_named_labels);
  -  pfe_freeze_thaw_binding_level (&p->bindings);
  +  pfe_freeze_thaw_cp_binding_level (&p->bindings);
     pfe_freeze_thaw_varray_tree (&p->x_local_names);
  +
     pfe_freeze_thaw_ptr_fp (&p->cannot_inline);
  -#endif
  +  pfe_freeze_thaw_unparsed_text (&p->unparsed_inlines);
   }
   
   /* Freeze/thaw saved_scope defined in cp/cp-tree.h */
  @@ -439,7 +428,7 @@
   pfe_freeze_thaw_saved_scope (pp)
        struct saved_scope **pp;
   {
  -  struct saved_scope *p = (struct saved_scope *)PFE_FREEZE_THAW_PTR (pp);
  +  struct saved_scope *p = (struct saved_scope *) PFE_FREEZE_THAW_PTR (pp);
     if (!p)
       return;
   
  @@ -461,13 +450,10 @@
     PFE_FREEZE_THAW_WALK (p->x_saved_tree);
     PFE_FREEZE_THAW_WALK (p->lookups);
     /* struct stmt_tree_s x_stmt_tree; Needed ??? */
  -#if 0 /* APPLE MERGE use cp_binding_level? */
  -  pfe_freeze_thaw_binding_level (&p->class_bindings);
  -  pfe_freeze_thaw_binding_level (&p->bindings);
  -#endif
  +  pfe_freeze_thaw_cp_binding_level (&p->class_bindings);
  +  pfe_freeze_thaw_cp_binding_level (&p->bindings);
   
     pfe_freeze_thaw_saved_scope (&p->prev);
  - 
   }
   
   /* Freeze/thaw operator_name_info arrays from lex.c  */
  @@ -524,8 +510,6 @@
       (*struct_check_functions[i]) (assumed_struct_size[i]);
   }
   
  -#if 0 /* APPLE MERGE diddle language function */
  -DEFINE_CHECK_STRUCT_FUNCTION (cp_language_function)
  -#endif
  +DEFINE_CHECK_STRUCT_FUNCTION (language_function)
   DEFINE_CHECK_STRUCT_FUNCTION (saved_scope)
   DEFINE_CHECK_STRUCT_FUNCTION (operator_name_info_t)
  
  
  
  1.6       +12 -8     gcc3/gcc/pfe/cp-freeze-thaw.h
  
  Index: cp-freeze-thaw.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/cp-freeze-thaw.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- cp-freeze-thaw.h  2002/08/07 03:13:32     1.5
  +++ cp-freeze-thaw.h  2002/08/16 17:07:04     1.6
  @@ -1,6 +1,6 @@
  -/* APPLE LOCAL PFE */
  +/* APPLE LOCAL file PFE */
   /* Freeze/thaw C++-specific trees and other data.
  -   Copyright (C) 2001  Free Software Foundation, Inc.
  +   Copyright (C) 2001, 2002  Free Software Foundation, Inc.
      Contributed by Apple Computer Inc.
   
   This file is part of GNU CC.
  @@ -59,8 +59,9 @@
     tree integer_two_node;
     tree integer_three_node;
     int function_depth;
  +  struct cp_binding_level *global_binding_level;
     struct saved_scope *scope_chain;
  -  
  +
     /* static globals from cp/pt.c.  */
     tree pending_templates;
     tree last_pending_template;
  @@ -78,9 +79,6 @@
     operator_name_info_t assignment_operator_name_info[(int) LAST_CPLUS_TREE_CODE];
   };
   
  -/* Freeze/thaw the struct pfe_lang_compiler_state.  */
  -void cp_lang_freeze_thaw_compiler_state   PARAMS ((struct pfe_lang_compiler_state 
**));
  -
   /* In cp/decl2.c */
   extern void pfe_freeze_thaw_decl2_globals PARAMS ((struct pfe_lang_compiler_state 
*));
   
  @@ -88,14 +86,20 @@
   extern void pfe_freeze_thaw_decl_globals PARAMS ((struct pfe_lang_compiler_state 
*));
   extern int pfe_get_anon_cnt           PARAMS ((void));
   extern void pfe_set_anon_cnt                  PARAMS ((int));
  +extern void pfe_freeze_thaw_cp_binding_level PARAMS ((struct cp_binding_level **));
  +extern void pfe_freeze_thaw_named_label_use_list PARAMS ((struct 
named_label_use_list **));
  +extern void pfe_freeze_thaw_named_label_list     PARAMS ((struct named_label_list 
**));
   
   /* In cp/pt.c */
   extern void pfe_freeze_thaw_pt_globals        PARAMS (( struct 
pfe_lang_compiler_state *));
   
  +/* cp/spew.c  */
  +extern void pfe_freeze_thaw_unparsed_text PARAMS ((struct unparsed_text **));
  +
   /* For scope_chain global from cp/decl.c. saved_scope is in cp/cp-tree.h.  */
  -extern void pfe_freeze_thaw_saved_scope  PARAMS ((struct saved_scope **pp));
  +extern void pfe_freeze_thaw_saved_scope  PARAMS ((struct saved_scope **));
   
  -extern void pfe_freeze_thaw_operator_name_info PARAMS ((struct operator_name_info_t 
*p));
  +extern void pfe_freeze_thaw_operator_name_info PARAMS ((struct operator_name_info_t 
*));
   
   /* Language hooks (in cp-freeze-thaw.c).  */
   extern void cxx_pfe_lang_init                   PARAMS ((int));
  
  
  
  1.15      +21 -23    gcc3/gcc/pfe/freeze-thaw.c
  
  Index: freeze-thaw.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/freeze-thaw.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- freeze-thaw.c     2002/08/14 21:31:04     1.14
  +++ freeze-thaw.c     2002/08/16 17:07:04     1.15
  @@ -1,4 +1,4 @@
  -/* APPLE LOCAL PFE */
  +/* APPLE LOCAL file PFE */
   /* Freeze/thaw common language trees and other data.
      Copyright (C) 2001  Free Software Foundation, Inc.
      Contributed by Ira L. Ruben ([EMAIL PROTECTED])
  @@ -809,6 +809,7 @@
        
        case REAL_CST:
          PFE_FREEZE_THAW_RTX (TREE_CST_RTL(node)); /* FIXME: needed? */
  +       /* APPLE MERGE need to preserve real_cst_ptr? */
          break;
        
        case COMPLEX_CST:
  @@ -899,7 +900,7 @@
                           *** CAUTION/WARNING ***
      Like anything else that is frozen/thawed, the strings for XSTR and
      XTMPL rtx's must be allocated in pfe memory.  While this is taken
  -   care if on the compiler, care must be taken of how XSTR's are
  +   care of in the compiler, care must be taken of how XSTR's are
      created in target dependent code (i.e., code in the gcc/config
      directory).  Using ggc_alloc_string() is fine.  But allocation
      any other way must involve one of the pfe allocators (e.g.,
  @@ -963,13 +964,6 @@
                PFE_FREEZE_THAW_WALK (NOTE_BLOCK (x));
                break;
   
  -#if 0 /* APPLE MERGE are these just gone? */
  -           case NOTE_INSN_RANGE_BEG:
  -           case NOTE_INSN_RANGE_END:
  -           case NOTE_INSN_LIVE:
  -             PFE_FREEZE_THAW_RTX (NOTE_RANGE_INFO (x));
  -             break;
  -#endif
              case NOTE_INSN_BASIC_BLOCK:
                freeze_thaw_basic_block_def (&NOTE_BASIC_BLOCK (x));
                break;
  @@ -1010,6 +1004,10 @@
        PFE_FREEZE_THAW_WALK (XTREE (x, i));
        break;
   
  +      case 'B':
  +     freeze_thaw_basic_block_def (&XBBDEF (x, i));
  +     break;
  +
         case 'w':
         case 'i':
         case 'n':
  @@ -1026,7 +1024,7 @@
     --rtx_nesting_level;
   }
   
  -/* Freeze/thaw rtvec an rtvec.  */
  +/* Freeze/thaw an rtvec.  */
   void
   pfe_freeze_thaw_rtvec (rtvecp)
        struct rtvec_def **rtvecp;
  @@ -1058,7 +1056,7 @@
   freeze_thaw_struct_mem_attrs (mpp)
        mem_attrs **mpp;
   {
  -  mem_attrs *mp = (mem_attrs *)PFE_FREEZE_THAW_PTR (mpp);
  +  mem_attrs *mp = (mem_attrs *) PFE_FREEZE_THAW_PTR (mpp);
    
     if (!mp)
       return;
  @@ -1078,25 +1076,25 @@
   {
     bitmap_element *be, *next, *prev;
       
  -  be = (bitmap_element *)PFE_FREEZE_THAW_PTR (bep);
  +  be = (bitmap_element *) PFE_FREEZE_THAW_PTR (bep);
     if (!be)
       return;
       
  -  next = (bitmap_element *)PFE_FREEZE_THAW_PTR (&be->next);
  -  prev = (bitmap_element *)PFE_FREEZE_THAW_PTR (&be->prev);
  +  next = (bitmap_element *) PFE_FREEZE_THAW_PTR (&be->next);
  +  prev = (bitmap_element *) PFE_FREEZE_THAW_PTR (&be->prev);
     
     be = next;
     while (be)
       {
         PFE_FREEZE_THAW_PTR (&be->prev);
  -      be = (bitmap_element *)PFE_FREEZE_THAW_PTR (&be->next);
  +      be = (bitmap_element *) PFE_FREEZE_THAW_PTR (&be->next);
       }
     
     be = prev;  
     while (be)
       {
         PFE_FREEZE_THAW_PTR (&be->next);
  -      be = (bitmap_element *)PFE_FREEZE_THAW_PTR (&be->prev);
  +      be = (bitmap_element *) PFE_FREEZE_THAW_PTR (&be->prev);
       }
   }
   
  @@ -1107,7 +1105,7 @@
   freeze_thaw_bitmap_head_def (bhp)
        struct bitmap_head_def **bhp;
   {
  -  bitmap_head *bh = (bitmap_head *)PFE_FREEZE_THAW_PTR (bhp);
  +  bitmap_head *bh = (bitmap_head *) PFE_FREEZE_THAW_PTR (bhp);
     
     if (!bh)
       return;
  @@ -1125,15 +1123,15 @@
     
     /* Freeze/thaw caller's pointer.  */
     
  -  e = (edge)PFE_FREEZE_THAW_PTR (edgep);
  +  e = (edge) PFE_FREEZE_THAW_PTR (edgep);
     if (!e)
       return;
     
     freeze_thaw_basic_block_def (&e->src);     /* FIXME: is this recursive? */
     freeze_thaw_basic_block_def (&e->dest);    /* FIXME: is this recursive? */
     PFE_FREEZE_THAW_RTX (e->insns);
  -  succ_next = (edge)PFE_FREEZE_THAW_PTR (&e->succ_next);
  -  pred_next = (edge)PFE_FREEZE_THAW_PTR (&e->pred_next);
  +  succ_next = (edge) PFE_FREEZE_THAW_PTR (&e->succ_next);
  +  pred_next = (edge) PFE_FREEZE_THAW_PTR (&e->pred_next);
     
     e = succ_next;
     while (e)
  @@ -1142,7 +1140,7 @@
         freeze_thaw_basic_block_def (&e->dest);
         PFE_FREEZE_THAW_RTX (e->insns);
         PFE_FREEZE_THAW_PTR (&e->pred_next);
  -      e = (edge)PFE_FREEZE_THAW_PTR (&e->succ_next);
  +      e = (edge) PFE_FREEZE_THAW_PTR (&e->succ_next);
       }
     
     e = pred_next;  
  @@ -1152,7 +1150,7 @@
         freeze_thaw_basic_block_def (&e->dest);
         PFE_FREEZE_THAW_RTX (e->insns);
         PFE_FREEZE_THAW_PTR (&e->succ_next);
  -      e = (edge)PFE_FREEZE_THAW_PTR (&e->pred_next);
  +      e = (edge) PFE_FREEZE_THAW_PTR (&e->pred_next);
       }
   }
   
  @@ -1161,7 +1159,7 @@
   freeze_thaw_basic_block_def (bbp)
        struct basic_block_def **bbp;
   {
  -  struct basic_block_def *bb = (struct basic_block_def *)PFE_FREEZE_THAW_PTR (bbp);
  +  struct basic_block_def *bb = (struct basic_block_def *) PFE_FREEZE_THAW_PTR (bbp);
     
     if (!bb)
       return;
  
  
  
  1.26      +0 -1      gcc3/gcc/pfe/pfe-header.c
  
  Index: pfe-header.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/pfe-header.c,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- pfe-header.c      2002/08/07 03:13:32     1.25
  +++ pfe-header.c      2002/08/16 17:07:04     1.26
  @@ -373,7 +373,6 @@
     
     /* Identifier hash table.  Note that the elements of this table are
        cpp_hashnode's (which begin with ht_identifier's).  */
  -  pfe_freeze_thaw_binding_level (NULL);
     PFE_GLOBAL_TO_HDR_IF_FREEZING (ident_hash);
     pfe_freeze_thaw_hashtable (&hdr->ident_hash, 
                             (void (*) (struct ht_identifier **))
  
  
  
  1.8       +4 -7      gcc3/gcc/pfe/pfe-header.h
  
  Index: pfe-header.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/pfe-header.h,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- pfe-header.h      2002/08/07 03:13:32     1.7
  +++ pfe-header.h      2002/08/16 17:07:04     1.8
  @@ -1,7 +1,6 @@
  -/* APPLE LOCAL PFE */
  +/* APPLE LOCAL file PFE */
   /* Persistent Front End (PFE) for the GNU compiler.
  -   Copyright (C) 2001
  -   Free Software Foundation, Inc.
  +   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
      Contributed by Apple Computer Inc.
   
   This file is part of GNU CC.
  @@ -123,10 +122,7 @@
     /* List of predefind global names.  */
     tree pfe_predefined_global_names;
   
  -  /* root for the all the decls and other stuff...  */
  -  struct binding_level *global_binding_level;
  -
  -  /* Idenfiter hash table */
  +  /* Identifier hash table */
     struct ht *ident_hash;
   
     /* Include header files  */
  @@ -186,6 +182,7 @@
     void *pfe_target_additions;
    
     int cmd_ln_macro_count;
  +
     /* Points to a structure whose details depend on the language in use.  */
     struct pfe_lang_compiler_state *lang_specific;
   };
  
  
  
  1.10      +2 -2      gcc3/gcc/pfe/pfe-mem.c
  
  Index: pfe-mem.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/pfe-mem.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- pfe-mem.c 2002/07/31 20:00:00     1.9
  +++ pfe-mem.c 2002/08/16 17:07:04     1.10
  @@ -1,6 +1,6 @@
  +/* APPLE LOCAL file PFE */
   /* Persistent Front End (PFE) low-level and common routines.
  -   Copyright (C) 2001
  -   Free Software Foundation, Inc.
  +   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
      Contributed by Apple Computer Inc.
   
   This file is part of GNU CC.
  
  
  
  1.2       +2 -3      gcc3/gcc/pfe/pfe-mem.h
  
  Index: pfe-mem.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/pfe-mem.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- pfe-mem.h 2001/12/14 02:06:47     1.1
  +++ pfe-mem.h 2002/08/16 17:07:04     1.2
  @@ -1,7 +1,6 @@
  -/* APPLE LOCAL PFE */
  +/* APPLE LOCAL file PFE */
   /* Persistent Front End (PFE) low-level and common routines.
  -   Copyright (C) 2001
  -   Free Software Foundation, Inc.
  +   Copyright (C) 2001 Free Software Foundation, Inc.
      Contributed by Apple Computer Inc.
   
   This file is part of GNU CC.
  
  
  
  1.23      +2 -3      gcc3/gcc/pfe/pfe.c
  
  Index: pfe.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/pfe.c,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- pfe.c     2002/08/08 00:25:15     1.22
  +++ pfe.c     2002/08/16 17:07:04     1.23
  @@ -1,7 +1,6 @@
  -/* APPLE LOCAL PFE */
  +/* APPLE LOCAL file PFE */
   /* Persistent Front End (PFE) low-level and common routines.
  -   Copyright (C) 2001
  -   Free Software Foundation, Inc.
  +   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
      Contributed by Apple Computer Inc.
   
   This file is part of GNU CC.
  
  
  
  1.11      +2 -12     gcc3/gcc/pfe/pfe.h
  
  Index: pfe.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/pfe.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- pfe.h     2002/08/07 03:13:32     1.10
  +++ pfe.h     2002/08/16 17:07:04     1.11
  @@ -1,7 +1,6 @@
   /* APPLE LOCAL file PFE */
   /* Persistent Front End (PFE) for the GNU compiler.
  -   Copyright (C) 2001
  -   Free Software Foundation, Inc.
  +   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
      Contributed by Apple Computer Inc.
   
   This file is part of GNU CC.
  @@ -35,6 +34,7 @@
   struct c_language_function;  /* in c-common.h                */
   struct language_function;    /* in cp/decl.c or c-decl.c     */
   struct binding_level;                /* in cp/decl.c or c-decl.c     */
  +struct cp_binding_level;     /* in cp/decl.c                 */
   struct named_label_use_list; /* in cp/decl.c                 */
   struct named_label_list;     /* in cp/decl.c                 */
   struct unparsed_text;                /* in cp/spew.c                 */
  @@ -389,16 +389,6 @@
   
   /* c-decl.c or cp-freeze-thaw.c  */
   extern void pfe_freeze_thaw_language_function PARAMS ((struct language_function 
**));
  -
  -/* cp/decl.c or c-decl.c  */
  -extern void pfe_freeze_thaw_binding_level PARAMS ((struct binding_level **));
  -
  -/* cp/decl.c  */
  -extern void pfe_freeze_thaw_named_label_use_list PARAMS ((struct 
named_label_use_list **));
  -extern void pfe_freeze_thaw_named_label_list     PARAMS ((struct named_label_list 
**));
  -
  -/* cp/spew.c  */
  -extern void pfe_freeze_thaw_unparsed_text PARAMS ((struct unparsed_text **));
   
   /* function.c - freeze/thaw a  pointer to a struct function.  */
   extern void pfe_freeze_thaw_function          PARAMS ((struct function **));
  
  
  
  1.2       +2 -66     gcc3/gcc/pfe/pfedbg.c
  
  Index: pfedbg.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/pfedbg.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- pfedbg.c  2001/12/14 02:06:47     1.1
  +++ pfedbg.c  2002/08/16 17:07:04     1.2
  @@ -1,7 +1,6 @@
  -/* APPLE LOCAL PFE */
  +/* APPLE LOCAL file PFE */
   /* Persistent Front End (PFE) debugging and statistics options processing.
  -   Copyright (C) 2001
  -   Free Software Foundation, Inc.
  +   Copyright (C) 2001 Free Software Foundation, Inc.
      Contributed by Apple Computer Inc.
   
   This file is part of GNU CC.
  @@ -21,24 +20,6 @@
   the Free Software Foundation, 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */
   
  -#ifdef TESTING
  -
  -#include <stdio.h>
  -#include <stdlib.h>
  -#define PARAMS(x) x
  -#define xmalloc malloc
  -#define xrealloc realloc
  -#define progname "progname"
  -#define N_(msgid) (msgid)
  -#define _(msgid) (msgid)
  -#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
  -#define skip_leading_substring(whole,  part) \
  -   (strncmp (whole, part, strlen (part)) ? NULL : whole + strlen (part))
  -static int test1 = 0;
  -static int test2 = 0;
  -
  -#else
  -
   #include "config.h"
   #include "system.h"
   #include "toplev.h"
  @@ -50,10 +31,6 @@
   #include <string.h>
   #include <ctype.h>
   
  -#endif
  -
  -#include <string.h>
  -
   #define MAXARGS 50
   
   void pfe_decode_dbgpfe_options PARAMS ((const char *));
  @@ -82,12 +59,6 @@
   {
     {"help", '?', &do_help, 1,
      N_("Display this help information")},
  -   
  - #if TESTING
  -   {"test1", '1', &test1, 1, N_("test1 info")},
  -   {"test2", '2', &test2, 1, N_("test2 info")},
  -#endif
  -   
     {"memory-stats", 'm', &pfe_display_memory_stats, 1,
      N_("Display pfe memory statistics")},
     {"header-list", 'h', &pfe_display_precomp_headers, 1,
  @@ -312,38 +283,3 @@
   
     myArgv[++(*argc)] = NULL;
   }
  -
  -/*-------------------------------------------------------------------*/
  -
  -#ifdef TESTING
  -
  -int main(argc, argv)
  -  int argc;
  -  char *argv[];
  -{
  -  char *s, cmdline[256];
  -  int i;
  -  
  -  while (1)
  -    {
  -      fprintf (stderr, "? ");
  -      s = fgets (cmdline, 255, stdin);
  -      if (!s)
  -        break;
  -      
  -      #if 1
  -      pfe_decode_dbgpfe_options (cmdline);
  -      #else
  -      build_argv (cmdline, &argc, &argv);
  -      
  -      for (i = 0; i < argc; ++i)
  -             fprintf (stderr, "   argv[%d] = \"%s\"\n", i, argv[i]);
  -      #endif
  -      
  -      fputc ('\n', stderr);
  -    }
  -      
  -  return 0;
  -}
  -#endif
  -
  
  
  
  1.8       +11 -18    gcc3/gcc/pfe/structs-to-check.def
  
  Index: structs-to-check.def
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/pfe/structs-to-check.def,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- structs-to-check.def      2002/08/08 03:20:06     1.7
  +++ structs-to-check.def      2002/08/16 17:07:05     1.8
  @@ -60,9 +60,8 @@
    which group of DEFCHECKSTRUCT's are used following the above
    mentioned categories.  */
   
  -/*-------------------------------------------------------------------*/
  -
   #ifdef GCC_STRUCTS
  +
   /* rtl.h */
   DEFCHECKSTRUCT (rtunion_def_union, 4)
   DEFCHECKSTRUCT (rtx_def, 8)
  @@ -96,8 +95,7 @@
   DEFCHECKSTRUCT (answer, 24)
   
   /* c-common.h */
  -/* APPLE MERGE do we need this? */
  -/* DEFCHECKSTRUCT (language_function, 20) */
  +DEFCHECKSTRUCT (c_language_function, 20)
   DEFCHECKSTRUCT (stmt_tree_s, 16)
   
   /* cppmacro.c */
  @@ -108,7 +106,7 @@
   DEFCHECKSTRUCT (eh_region, 56)
   
   /* function.c */
  -DEFCHECKSTRUCT (function, 264)
  +DEFCHECKSTRUCT (function, 276)
   DEFCHECKSTRUCT (expr_status, 28)
   DEFCHECKSTRUCT (emit_status, 52)
   DEFCHECKSTRUCT (sequence_stack, 16)
  @@ -127,33 +125,29 @@
   
   /* varasm.c */
   DEFCHECKSTRUCT (pool_constant, 36)
  -DEFCHECKSTRUCT (varasm_status, 28)
  -DEFCHECKSTRUCT (constant_descriptor_rtx, 20)
  +DEFCHECKSTRUCT (varasm_status, 20)
  +DEFCHECKSTRUCT (constant_descriptor_rtx, 80)
   DEFCHECKSTRUCT (rtx_const, 132)
   
   #endif /* GCC_STRUCTS */
  -/*-------------------------------------------------------------------*/
  +
   #ifdef GCC_C_STRUCTS
   
   /* c-decl.c */
  -DEFCHECKSTRUCT (c_language_function, 52)
  +DEFCHECKSTRUCT (language_function, 52)
   DEFCHECKSTRUCT (binding_level, 40)
   
   #endif /* GCC_C_STRUCTS */
  -/*-------------------------------------------------------------------*/
  +
   #ifdef GCC_CP_STRUCTS
   
   /* pfe/cp-freeze-thaw.c */
  -#if 0 /* APPLE MERGE update this */
  -DEFCHECKSTRUCT (cp_language_function, 92)
  -#endif
  +DEFCHECKSTRUCT (language_function, 92)
   DEFCHECKSTRUCT (saved_scope, 100)
   DEFCHECKSTRUCT (operator_name_info_t, 12)
   
   /* cp/decl.c */
  -#if 0 /* APPLE MERGE update this */
  -DEFCHECKSTRUCT (binding_level, 52)
  -#endif
  +DEFCHECKSTRUCT (cp_binding_level, 52)
   DEFCHECKSTRUCT (named_label_use_list, 24)
   DEFCHECKSTRUCT (named_label_list, 28)
   
  @@ -161,7 +155,7 @@
   DEFCHECKSTRUCT (unparsed_text, 28)
   
   #endif /* GCC_CP_STRUCTS */
  -/*-------------------------------------------------------------------*/
  +
   #ifdef GCC_OBJC_STRUCTS
   
   /* objc-act.h */
  @@ -169,4 +163,3 @@
   DEFCHECKSTRUCT (hashed_entry, 12)
   
   #endif /* GCC_OBJC_STRUCTS */
  -/*-------------------------------------------------------------------*/
  
  
  


Reply via email to