shebs       02/08/26 13:08:13

  Modified:    libiberty cp-demangle.c
               libstdc++-v3 configure.target
               gcc      c-common.c c-common.h c-lang.c c-opts.c c-tree.h
                        c-typeck.c cppinit.c cpplex.c cppmacro.c
                        fix-header.c flags.h gcc.c global.c idebug.c
               gcc/config darwin.c darwin.h
               gcc/config/i386 darwin.h i386.h
               gcc/config/m68k m68k.c
               gcc/config/rs6000 darwin.h rs6000.c rs6000.md
               gcc/cp   call.c cp-dmp-tree.c cp-idebug.c cp-lang.c
                        cp-parse.in decl2.c lang-specs.h typeck.c
               gcc/ginclude stdarg.h stddef.h varargs.h
               gcc/objc lang-specs.h objc-act.c objc-lang.c
               gcc/objcp lang-specs.h objcp-decl.c
  Log:
  Make everything build, fix up the migrated options, clear a bit of
  merge detritus.
  
  Revision  Changes    Path
  1.9       +8 -0      gcc3/libiberty/cp-demangle.c
  
  Index: cp-demangle.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/libiberty/cp-demangle.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- cp-demangle.c     2002/08/02 10:10:28     1.8
  +++ cp-demangle.c     2002/08/26 20:07:57     1.9
  @@ -2088,15 +2088,19 @@
   {
     static const char *const ctor_flavors[] = 
     {
  +    /* APPLE LOCAL decloning structors */
       "in-charge",             /* Indexed as "C1", "C2", ...  */
       "not-in-charge",
  +    /* APPLE LOCAL decloning structors */
       "allocating",
       "unified"
     };
     static const char *const dtor_flavors[] = 
     {
  +    /* APPLE LOCAL decloning structors */
       "in-charge deleting",    /* Indexed as "D0", "D1", ...  */
       "in-charge",
  +    /* APPLE LOCAL decloning structors */
       "not-in-charge",
       "",
       "unified"
  @@ -2112,6 +2116,7 @@
         /* A constructor name.  Consume the C.  */
         advance_char (dm);
         flavor = next_char (dm);
  +      /* APPLE LOCAL decloning structors */
         if (flavor < '1' || flavor > '4')
        return "Unrecognized constructor.";
         RETURN_IF_ERROR (result_add_string (dm, dm->last_source_name));
  @@ -2123,6 +2128,7 @@
          break;
        case '3': dm->is_constructor = gnu_v3_complete_object_allocating_ctor;
          break;
  +       /* APPLE LOCAL decloning structors */
        case '4': dm->is_constructor = gnu_v3_unified_ctor;
          break;
        }
  @@ -2139,6 +2145,7 @@
         /* A destructor name.  Consume the D.  */
         advance_char (dm);
         flavor = next_char (dm);
  +      /* APPLE LOCAL decloning structors */
         if (flavor < '0' || flavor > '4' || flavor == '3')
        return "Unrecognized destructor.";
         RETURN_IF_ERROR (result_add_char (dm, '~'));
  @@ -2151,6 +2158,7 @@
          break;
        case '2': dm->is_destructor = gnu_v3_base_object_dtor;
          break;
  +       /* APPLE LOCAL decloning structors */
        case '4': dm->is_destructor = gnu_v3_unified_dtor;
          break;
        }
  
  
  
  1.17      +0 -3      gcc3/libstdc++-v3/configure.target
  
  Index: configure.target
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/libstdc++-v3/configure.target,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- configure.target  2002/08/26 05:42:06     1.16
  +++ configure.target  2002/08/26 20:07:57     1.17
  @@ -106,9 +106,6 @@
     x86_64*)
       cpu_include_dir="cpu/x86-64"
       ;;
  -  *)
  -    cpu_include_dir="config/cpu/generic"
  -    ;;
   esac
   
   
  
  
  
  1.74      +39 -1     gcc3/gcc/c-common.c
  
  Index: c-common.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-common.c,v
  retrieving revision 1.73
  retrieving revision 1.74
  diff -u -r1.73 -r1.74
  --- c-common.c        2002/08/26 05:39:27     1.73
  +++ c-common.c        2002/08/26 20:07:57     1.74
  @@ -588,7 +588,8 @@
   /* Nonzero means make the default pedwarns warnings instead of errors.
      The value of this flag is ignored if -pedantic is specified.  */
   
  -int flag_permissive;
  +/* APPLE LOCAL be permissive by default */
  +int flag_permissive = 1;
   
   /* Nonzero means to implement standard semantics for exception
      specifications, calling unexpected if an exception is thrown that
  @@ -596,6 +597,43 @@
      assertions and optimize accordingly, but not check them.  */
   
   int flag_enforce_eh_specs = 1;
  +
  +/* APPLE LOCAL begin -findirect-virtual-calls 2001-10-30 sts */
  +/* Nonzero if all calls to virtual functions should cause indirection
  +   through a vtable.  */
  +int flag_indirect_virtual_calls;
  +/* APPLE LOCAL end -findirect-virtual-calls 2001-10-30 sts */
  +
  +/* APPLE LOCAL begin terminated-vtables */
  +/* Nonzero means append a zero word to vtables.  Used by darwin kernel
  +   driver dynamic-loader to find the ends of vtables for patching.  */
  +int flag_terminated_vtables = 0;
  +/* APPLE LOCAL end terminated-vtables */
  +
  +/* 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.  */
  +int flag_preprocessed = 0;
  +/* APPLE LOCAL end private extern  Radar 2872481 ilr */
  +
  +/* APPLE LOCAL begin apple-kext   Radar #2849864 ilr */
  +/* 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...  */
  +int flag_apple_kext = 0;
  +/* APPLE LOCAL end apple-kext ilr */
  +
  +/* 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.  */
  +int flag_clone_structors = 0;
  +/* APPLE LOCAL end structor thunks */
   
   /* Nonzero means warn about implicit declarations.  */
   
  
  
  
  1.55      +6 -1      gcc3/gcc/c-common.h
  
  Index: c-common.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-common.h,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- c-common.h        2002/08/26 05:39:27     1.54
  +++ c-common.h        2002/08/26 20:07:58     1.55
  @@ -493,6 +493,12 @@
   extern int warn_long_double;
   /* APPLE LOCAL end long double */
   
  +/* 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 */
  +
   /* Nonzero means warn about deprecated conversion from string constant to
      `char *'.  */
   
  @@ -877,7 +883,6 @@
      This is a count, since unevaluated expressions can nest.  */
   
   extern int skip_evaluation;
  -
   
   /* C types are partitioned into three subsets: object, function, and
      incomplete types.  */
  
  
  
  1.30      +5 -3      gcc3/gcc/c-lang.c
  
  Index: c-lang.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-lang.c,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- c-lang.c  2002/08/26 05:39:28     1.29
  +++ c-lang.c  2002/08/26 20:07:58     1.30
  @@ -223,9 +223,11 @@
     return 0;
   }
   
  -/* APPLE LOCAL remove unused maybe_building_objc_message_expr */
  -
  -/* APPLE LOCAL remove unused recognize_objc_keyword */
  +int
  +recognize_objc_keyword ()
  +{
  +  return 0;
  +}
   
   /* APPLE LOCAL move lookup_objc_ivar to stub-objc.c */
   
  
  
  
  1.3       +39 -5     gcc3/gcc/c-opts.c
  
  Index: c-opts.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-opts.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- c-opts.c  2002/08/26 05:39:28     1.2
  +++ c-opts.c  2002/08/26 20:07:58     1.3
  @@ -207,12 +207,16 @@
     OPT("faccess-control",     CL_CXX,   OPT_faccess_control)               \
     OPT("fall-virtual",                CL_CXX,   OPT_fall_virtual)                  \
     OPT("falt-external-templates",CL_CXX,   OPT_falt_external_templates)            \
  -  OPT("fasm",                        CL_ALL,   OPT_fasm)                          \
     /* APPLE LOCAL AltiVec */  \
     OPT("faltivec",            CL_ALL,   OPT_faltivec)                      \
  +  /* APPLE LOCAL -fapple-kext */  \
  +  OPT("fapple-kext",         CL_CXX,   OPT_fapple_kext)                   \
  +  OPT("fasm",                        CL_ALL,   OPT_fasm)                          \
     OPT("fbuiltin",            CL_ALL,   OPT_fbuiltin)                      \
     OPT("fbuiltin-",           CL_ALL | CL_JOINED, OPT_fbuiltin_)           \
     OPT("fcheck-new",          CL_CXX,   OPT_fcheck_new)                    \
  +  /* APPLE LOCAL structor decloning */  \
  +  OPT("fclone-structors",    CL_CXX,   OPT_fclone_structors)              \
     OPT("fcond-mismatch",              CL_ALL,   OPT_fcond_mismatch)                \
     OPT("fconserve-space",     CL_CXX,   OPT_fconserve_space)               \
     OPT("fconst-strings",              CL_CXX,   OPT_fconst_strings)                \
  @@ -239,6 +243,8 @@
     OPT("fimplement-inlines",  CL_CXX,   OPT_fimplement_inlines)            \
     OPT("fimplicit-inline-templates", CL_CXX, OPT_fimplicit_inline_templates)  \
     OPT("fimplicit-templates", CL_CXX,   OPT_fimplicit_templates)           \
  +  /* APPLE LOCAL -findirect-virtual-calls */  \
  +  OPT("findirect-virtual-calls",CL_CXX,   OPT_findirect_virtual_calls)            \
     OPT("flabels-ok",          CL_CXX,   OPT_flabels_ok)                    \
     OPT("fms-extensions",              CL_ALL,   OPT_fms_extensions)                \
     OPT("fname-mangling-version-",CL_CXX | CL_JOINED, OPT_fname_mangling)           \
  @@ -263,6 +269,8 @@
     OPT("fstrict-prototype",   CL_CXX,   OPT_fstrict_prototype)             \
     OPT("ftabstop=",              CL_ALL | CL_JOINED, OPT_ftabstop)         \
     OPT("ftemplate-depth-",    CL_CXX | CL_JOINED, OPT_ftemplate_depth)     \
  +  /* APPLE LOCAL -fterminated-vtables */  \
  +  OPT("fterminated-vtables", CL_CXX,   OPT_fterminated_vtables)           \
     OPT("fthis-is-variable",   CL_CXX,   OPT_fthis_is_variable)             \
     OPT("funsigned-bitfields", CL_ALL,   OPT_funsigned_bitfields)           \
     OPT("funsigned-char",              CL_ALL,   OPT_funsigned_char)                \
  @@ -813,10 +821,8 @@
         if (getenv ("QA_DISABLE_WERROR"))
        {
          cpp_opts->warnings_are_errors = !on;
  -#if 0 /* APPLE MERGE how to keep these? */
  -       cpp_error (pfile, DL_WARNING, "-Werror ignored because QA_DISABLE_WERROR is 
set.");
  -       cpp_error (pfile, DL_WARNING, "Warnings will not be treated as errors.");
  -#endif
  +       warning ("-Werror ignored because QA_DISABLE_WERROR is set.");
  +       warning ("Warnings will not be treated as errors.");
        }
         /* APPLE LOCAL end -Werror 2002-21-01 dpatel */
         break;
  @@ -1104,6 +1110,14 @@
         break;
         /* APPLE LOCAL end AltiVec */
   
  +      /* APPLE LOCAL begin -fapple-kext */
  +    case OPT_fapple_kext:
  +      flag_apple_kext = on;
  +      flag_indirect_virtual_calls = 1;
  +      flag_terminated_vtables = 1;
  +      break;
  +      /* APPLE LOCAL end -fapple-kext */
  +
       case OPT_fasm:
         flag_no_asm = !on;
         break;
  @@ -1169,6 +1183,12 @@
         flag_signed_char = !on;
         break;
   
  +      /* APPLE LOCAL begin structor decloning */
  +    case OPT_fclone_structors:
  +      flag_clone_structors = on;
  +      break;
  +      /* APPLE LOCAL end structor decloning */
  +
       case OPT_fcheck_new:
         flag_check_new = on;
         break;
  @@ -1236,6 +1256,12 @@
         flag_implicit_templates = on;
         break;
   
  +      /* APPLE LOCAL begin -findirect-virtual-calls */
  +    case OPT_findirect_virtual_calls:
  +      flag_indirect_virtual_calls = on;
  +      break;
  +      /* APPLE LOCAL end -findirect-virtual-calls */
  +
       case OPT_fms_extensions:
         flag_ms_extensions = on;
         break;
  @@ -1262,6 +1288,8 @@
   
       case OPT_fpreprocessed:
         cpp_opts->preprocessed = on;
  +      /* APPLE LOCAL private extern  Radar 2872481 ilr */
  +      flag_preprocessed = on;
         break;
   
       case OPT_frepo:
  @@ -1299,6 +1327,12 @@
       case OPT_ftemplate_depth:
         max_tinst_depth = read_integral_parameter (arg, argv[0], 0);
         break;
  +
  +      /* APPLE LOCAL begin -fterminated-vtables */
  +    case OPT_fterminated_vtables:
  +      flag_terminated_vtables = on;
  +      break;
  +      /* APPLE LOCAL end -fterminated-vtables */
   
       case OPT_fvtable_gc:
         flag_vtable_gc = on;
  
  
  
  1.38      +0 -3      gcc3/gcc/c-tree.h
  
  Index: c-tree.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-tree.h,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- c-tree.h  2002/08/26 05:39:28     1.37
  +++ c-tree.h  2002/08/26 20:07:58     1.38
  @@ -162,10 +162,7 @@
   #define TYPE_ACTUAL_ARG_TYPES(NODE) TYPE_BINFO (NODE)
   
   
  -/* APPLE LOCAL Objective-C++ */
  -/* The ObjC function prototypes have been moved to c-common.h.  */
   /* in c-lang.c and objc-act.c */
  -/* APPLE MERGE need these decls? */
   extern tree lookup_interface                 PARAMS ((tree));
   extern tree is_class_name                    PARAMS ((tree));
   extern void objc_check_decl                  PARAMS ((tree));
  
  
  
  1.42      +16 -14    gcc3/gcc/c-typeck.c
  
  Index: c-typeck.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/c-typeck.c,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- c-typeck.c        2002/08/26 05:39:29     1.41
  +++ c-typeck.c        2002/08/26 20:07:58     1.42
  @@ -587,7 +587,6 @@
   {
     int val;
   
  -  /* APPLE MERGE is this right? */
     /* Give maybe_objc_comptypes a crack at letting these types through.  */
     if ((val = objc_comptypes (ttl, ttr, 1)) >= 0)
       return val;
  @@ -3573,13 +3572,15 @@
         if ((extra_warnings || warn_unused_value)
              && ! (TREE_CODE (TREE_VALUE (list)) == CONVERT_EXPR
                   && VOID_TYPE_P (TREE_TYPE (TREE_VALUE (list)))))
  -      /* APPLE LOCAL: AltiVec */
  -      /* Inhibit bogus warnings for "vector int x = (vector int)(1,2,3,4);" 
  -      Unfortunately, we have no way of knowing whether the expression
  -      we're currently parsing is part of a vector constant, so we just
  -      inhibit this warning when "-faltivec" was specified.  I know, I know,
  -      it's a crummy solution, but it'll do for now.  */
  +     /* APPLE LOCAL begin AltiVec */
  +     /* Inhibit bogus warnings for "vector int x = (vector
  +        int)(1,2,3,4);" Unfortunately, we have no way of knowing
  +        whether the expression we're currently parsing is part of a
  +        vector constant, so we just inhibit this warning when
  +        "-faltivec" was specified.  I know, I know, it's a crummy
  +        solution, but it'll do for now.  */
        if (!(flag_altivec && !extra_warnings))
  +     /* APPLE LOCAL end AltiVec */
           warning ("left-hand operand of comma expression has no effect");
   
         /* When pedantic, a compound expression can be neither an lvalue
  @@ -3615,8 +3616,8 @@
        only in <protocol> qualifications.  But when constructing cast expressions,
        the protocols do matter and must be kept around.  */
     if (!flag_objc || !is_id (type))     
  -    type = TYPE_MAIN_VARIANT (type);
     /* APPLE LOCAL end protocol qual */ 
  +  type = TYPE_MAIN_VARIANT (type);
   
   #if 0
     /* Strip NON_LVALUE_EXPRs since we aren't using as an lvalue.  */
  @@ -3679,15 +3680,17 @@
         error ("cast to union type from type not present in union");
         return error_mark_node;
       }
  -/* APPLE LOCAL: AltiVec - not written in target-independent manner!!! */
  -  /* Handle "(vector float)(vector unsigned long) (0x1,0x2,0x3,0x4)" which 
  -     means a vector float using the given values (with no conversion.)  */
  +  /* APPLE LOCAL begin AltiVec */
  +  /* Handle "(vector float)(vector unsigned long) (0x1,0x2,0x3,0x4)"
  +     which means a vector float using the given values (with no
  +     conversion.)  */
     else if (TREE_CODE (type) == VECTOR_TYPE && TREE_CODE (expr) == VECTOR_CST
           && TREE_TYPE (expr) != type)
       { 
         TREE_TYPE (expr) = type;
         return expr;
       } 
  +  /* APPLE LOCAL end AltiVec */
     else
       {
         tree otype, ovalue;
  @@ -4810,9 +4813,8 @@
     /* Handle scalar types, including conversions.  */
   
     if (code == INTEGER_TYPE || code == REAL_TYPE || code == POINTER_TYPE
  -/* APPLE LOCAL: AltiVec */
  -      || code == ENUMERAL_TYPE || code == BOOLEAN_TYPE || code == COMPLEX_TYPE
  -      || code == VECTOR_TYPE)
  +      /* APPLE LOCAL AltiVec */
  +      || code == ENUMERAL_TYPE || code == BOOLEAN_TYPE || code == COMPLEX_TYPE || 
code == VECTOR_TYPE)
       {
         /* Note that convert_for_assignment calls default_conversion
         for arrays and functions.  We must not call it in the
  
  
  
  1.69      +29 -34    gcc3/gcc/cppinit.c
  
  Index: cppinit.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cppinit.c,v
  retrieving revision 1.68
  retrieving revision 1.69
  diff -u -r1.68 -r1.69
  --- cppinit.c 2002/08/26 05:39:31     1.68
  +++ cppinit.c 2002/08/26 20:07:58     1.69
  @@ -1512,42 +1512,10 @@
        case N_OPTS: /* Shut GCC up.  */
          break;
   
  -#if 0 /* APPLE MERGE */
  -     /* APPLE LOCAL begin -header-mapfile */
  -     case OPT_header_mapfile:
  -       if (CPP_OPTION (pfile, header_map) != NULL)
  -         cpp_error (pfile, DL_ERROR,
  -                    "more than one `-header-mapfile' option specified; "
  -                    "only one is allowed");
  -       else
  -         CPP_OPTION (pfile, header_map) = hmap_load_header_map (arg);
  -       break;
  -     /* APPLE LOCAL end -header-mapfile */
  -     /* APPLE LOCAL begin -inclusion-log-file */
  -     case OPT_inclusion_log_file:
  -       if (CPP_OPTION (pfile, inclusion_log_file) != NULL)
  -         cpp_error (pfile, DL_ERROR,
  -                    "more than one `-inclusion-log-file' option specified; "
  -                    "only one is allowed");
  -       else
  -         CPP_OPTION (pfile, inclusion_log_file) = ilog_open (arg);
  -       break;
  -     /* APPLE LOCAL end -inclusion-log-file */
  -       /* APPLE LOCAL -precomp-trustfile */
  -     case OPT_precomp_trustfile:
  -       break;
  -
  -     /* APPLE LOCAL flag_objc */  
  -     case OPT_lang_objcplusplus:
  -       flag_objc = 1;
  -       /* Fall through.  */
  -     case OPT_lang_cplusplus:
  -       set_lang (pfile, CLK_GNUCXX);
  -       break;
  -       /* APPLE LOCAL fat builds */
  +       /* APPLE LOCAL begin fat builds */
        case OPT_arch:
          break;
  -#endif
  +       /* APPLE LOCAL end fat builds */
   
        case OPT_D:
          new_pending_directive (pend, arg, cpp_define);
  @@ -1675,6 +1643,33 @@
          /* Add directory to end of path for includes.  */
          append_include_chain (pfile, xstrdup (arg), AFTER, 0);
          break;
  +
  +       /* APPLE LOCAL begin -header-mapfile */
  +     case OPT_header_mapfile:
  +       if (CPP_OPTION (pfile, header_map) != NULL)
  +         cpp_error (pfile, DL_ERROR,
  +                    "more than one `-header-mapfile' option specified; "
  +                    "only one is allowed");
  +       else
  +         CPP_OPTION (pfile, header_map) = hmap_load_header_map (arg);
  +       break;
  +       /* APPLE LOCAL end -header-mapfile */
  +
  +       /* APPLE LOCAL begin -inclusion-log-file */
  +     case OPT_inclusion_log_file:
  +       if (CPP_OPTION (pfile, inclusion_log_file) != NULL)
  +         cpp_error (pfile, DL_ERROR,
  +                    "more than one `-inclusion-log-file' option specified; "
  +                    "only one is allowed");
  +       else
  +         CPP_OPTION (pfile, inclusion_log_file) = ilog_open (arg);
  +       break;
  +       /* APPLE LOCAL end -inclusion-log-file */
  +
  +       /* APPLE LOCAL begin -precomp-trustfile */
  +     case OPT_precomp_trustfile:
  +       break;
  +       /* APPLE LOCAL end -precomp-trustfile */
        }
       }
     return i + 1;
  
  
  
  1.42      +0 -1      gcc3/gcc/cpplex.c
  
  Index: cpplex.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cpplex.c,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- cpplex.c  2002/08/07 03:13:07     1.41
  +++ cpplex.c  2002/08/26 20:07:59     1.42
  @@ -996,7 +996,6 @@
   
         /* End of buffer.  */
         buffer->cur--;
  -
         if (continue_after_nul (pfile))
        goto fresh_line;
         /* APPLE LOCAL begin indexing dpatel */
  
  
  
  1.46      +1 -1      gcc3/gcc/cppmacro.c
  
  Index: cppmacro.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cppmacro.c,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- cppmacro.c        2002/08/26 05:39:32     1.45
  +++ cppmacro.c        2002/08/26 20:07:59     1.46
  @@ -1631,7 +1631,7 @@
          if (node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
            cpp_error_with_line (pfile, DL_PEDWARN,
                                 node->value.macro->line, 0,
  -                              "this is the location of the previous definition");
  +                      "this is the location of the previous definition");
        }
         /* APPLE LOCAL begin PFE dpatel */
         else
  
  
  
  1.19      +2 -0      gcc3/gcc/fix-header.c
  
  Index: fix-header.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/fix-header.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- fix-header.c      2002/08/26 05:39:35     1.18
  +++ fix-header.c      2002/08/26 20:07:59     1.19
  @@ -1334,3 +1334,5 @@
      to avoid unnecessary/unavoidable warnings/errors.  */
   int flag_cpp_precomp = 0;
   /* APPLE LOCAL end cpp-precomp dpatel */
  +
  +int flag_objc = 0;
  
  
  
  1.36      +0 -4      gcc3/gcc/flags.h
  
  Index: flags.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/flags.h,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- flags.h   2002/08/22 13:59:13     1.35
  +++ flags.h   2002/08/26 20:07:59     1.36
  @@ -251,10 +251,6 @@
   /* Nonzero means enable the AltiVec Programming Model.  */
   
   extern int flag_altivec;
  -
  -/* Nonzero means warn about deprecated use of 'long' vector types.  */
  -
  -extern int warn_altivec_long_deprecated;  /* radar 2841709 */
   /* APPLE LOCAL end AltiVec */
   
   /* APPLE LOCAL begin constant cfstrings */
  
  
  
  1.140     +6 -6      gcc3/gcc/gcc.c
  
  Index: gcc.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/gcc.c,v
  retrieving revision 1.139
  retrieving revision 1.140
  diff -u -r1.139 -r1.140
  --- gcc.c     2002/08/26 05:39:36     1.139
  +++ gcc.c     2002/08/26 20:07:59     1.140
  @@ -1005,24 +1005,24 @@
        1) -no-cpp-precomp is used
        2) PFE is used 
       */
  -     "%{M|MM:%(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)}\
  +     "%{M|MM:%(trad_capable_cpp) %(cpp_options)}\
         %{E|S:%{@:%e-E and -S are not allowed with multiple -arch flags}}\
         %{E:\
          %{traditional|ftraditional|traditional-cpp|no-cpp-precomp:\
  -         %(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)}\
  +         %(trad_capable_cpp) %(cpp_options)}\
          %{!traditional:%{!ftraditional:%{!traditional-cpp:%{!no-cpp-precomp:\
            %(cpp_precomp) -lang-c %{ansi:-std=c89} %(cpp_precomp_options) %y0}}}}}\
         %{!E:%{!M:%{!MM:\
          %{save-temps|no-integrated-cpp:\
              %{no-cpp-precomp|traditional-cpp|fload=*|fdump=*:\
  -             %(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options) 
%{save-temps:%b.i} %{!save-temps:%g.i} \n\
  +             %(trad_capable_cpp) %(cpp_options) %{save-temps:%b.i} 
%{!save-temps:%g.i} \n\
                    cc1 -fpreprocessed %{save-temps:%b.i} %{!save-temps:%g.i} 
%(cc1_options)}\
              %{cpp-precomp|!no-cpp-precomp:%{!traditional-cpp:%{!fdump=*:%{!fload=*:\
                %(cpp_precomp) -lang-c %{ansi:-std=c89} %(cpp_precomp_options) %y0 
%b.i \n\
                    cc1 -cpp-precomp %b.i %(cc1_options)}}}}}\
          %{!save-temps:%{!no-integrated-cpp:\
            %{traditional|ftraditional|traditional-cpp:%{!cpp-precomp:\
  -             tradcpp0 -lang-c %{ansi:-std=c89} %(cpp_options) %{!pipe:%g.i} |\n\
  +             tradcpp0 %(cpp_options) %{!pipe:%g.i} |\n\
                    cc1 -fpreprocessed %{!pipe:%g.i} %(cc1_options)}}}\
            
%{!fdump=*:%{!fload=*:%{!no-cpp-precomp|cpp-precomp:%{!precomp:%{!traditional-cpp:\
                %(cpp_precomp) -lang-c %{ansi:-std=c89}\
  @@ -1034,7 +1034,7 @@
                     %{@:-o %f%u.p}%{!@:%W{o}%W{!o*:-o %b-gcc3.p}} }\
            %{!traditional:%{!ftraditional:%{!traditional-cpp:\
                %{fload=*|fdump=*|no-cpp-precomp:%{!precomp:\
  -                 cc1 -lang-c %{ansi:-std=c89} %(cpp_unique_options) 
%(cc1_options)}}}}}}\
  +                 cc1 %(cpp_unique_options) %(cc1_options)}}}}}}\
           %{!fsyntax-only:%{!precomp:%(invoke_as)}}}}}", 0},
      /* APPLE LOCAL end cpp-precomp dpatel */
     {"-",
  @@ -1046,7 +1046,7 @@
      "%{!E:%{!precomp:%ecompilation of header file requested}} \
       %{E:%{@:%e-E is not allowed with multiple -arch flags}}\
       %{traditional-cpp|no-cpp-precomp:%{!precomp:\
  -     %(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)}}\
  +     %(trad_capable_cpp) %(cpp_options)}}\
       %{!traditional-cpp:%{!no-cpp-precomp:\
        %(cpp_precomp) -lang-c %{ansi:-std=c89}\
          %(cpp_precomp_options) %y0\
  
  
  
  1.10      +1 -0      gcc3/gcc/global.c
  
  Index: global.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/global.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- global.c  2002/08/26 05:39:38     1.9
  +++ global.c  2002/08/26 20:07:59     1.10
  @@ -251,6 +251,7 @@
   
   /* Set to 1 a bit in a vector TABLE of HARD_REG_SETs, for vector
      element I, and hard register number J.  */
  +
   #define SET_REGBIT(TABLE, I, J)  SET_HARD_REG_BIT (allocno[I].TABLE, J)
   
   /* Bit mask for allocnos live at current point in the scan.  */
  
  
  
  1.21      +0 -1      gcc3/gcc/idebug.c
  
  Index: idebug.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/idebug.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- idebug.c  2002/08/03 05:28:14     1.20
  +++ idebug.c  2002/08/26 20:07:59     1.21
  @@ -107,7 +107,6 @@
   fn_1( TREE_PRIVATE, int, tree )
   fn_1( TREE_PROTECTED, int, tree )
   fn_1( TREE_BOUNDED, int, tree )
  -/* APPLE LOCAL deprecated (Radar 2637521) ilr */
   fn_1( TREE_DEPRECATED, int, tree )
   /* APPLE LOCAL unavailable (Radar 2809697) ilr */
   fn_1( TREE_UNAVAILABLE, int, tree )
  
  
  
  1.78      +6 -3      gcc3/gcc/config/darwin.c
  
  Index: darwin.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/darwin.c,v
  retrieving revision 1.77
  retrieving revision 1.78
  diff -u -r1.77 -r1.78
  --- darwin.c  2002/08/26 05:40:15     1.77
  +++ darwin.c  2002/08/26 20:08:02     1.78
  @@ -512,13 +512,13 @@
     tree temp, ident = get_identifier (name), id2;
   
       for (temp = (validate_stub ? machopic_stubs : machopic_non_lazy_pointers);
  -      temp != NULL_TREE;
  -      temp = TREE_CHAIN (temp))
  +         temp != NULL_TREE;
  +         temp = TREE_CHAIN (temp))
         if (ident == TREE_PURPOSE (temp))
        {
          /* Mark both the stub or non-lazy pointer as well as the
             original symbol as being referenced.  */
  -       TREE_USED (temp) = 1;
  +          TREE_USED (temp) = 1;
          if (TREE_CODE (TREE_VALUE (temp)) == IDENTIFIER_NODE)
            TREE_SYMBOL_REFERENCED (TREE_VALUE (temp)) = 1;
          real_name = IDENTIFIER_POINTER (TREE_VALUE (temp));
  @@ -590,6 +590,7 @@
                              gen_rtx (HIGH, Pmode, offset)));
          emit_insn (gen_rtx (SET, VOIDmode, reg,
                              gen_rtx (LO_SUM, Pmode, reg, offset)));
  +       /* APPLE LOCAL ? */
          emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
   
          orig = gen_rtx (PLUS, Pmode, pic_offset_table_rtx, reg);
  @@ -1013,6 +1014,8 @@
   
         if (! TREE_USED (temp))
        continue;
  +
  +      /* APPLE LOCAL remove a stub tweak */
   
         sym_name = darwin_strip_name_encoding (sym_name);
   
  
  
  
  1.178     +5 -2      gcc3/gcc/config/darwin.h
  
  Index: darwin.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/darwin.h,v
  retrieving revision 1.177
  retrieving revision 1.178
  diff -u -r1.177 -r1.178
  --- darwin.h  2002/08/26 05:40:15     1.177
  +++ darwin.h  2002/08/26 20:08:02     1.178
  @@ -39,6 +39,7 @@
      (Some Darwin versions have a libm, but they seem to cause problems
      for C++ executables.)  */
   
  +/* APPLE LOCAL include guard for darwin.h */
   #ifndef CONFIG_DARWIN_H
   #define CONFIG_DARWIN_H
   
  @@ -837,6 +838,7 @@
   #undef TARGET_STRIP_NAME_ENCODING
   #define TARGET_STRIP_NAME_ENCODING  darwin_strip_name_encoding
   
  +/* APPLE LOCAL what is this for? */
   /* Be conservative and always redo the encoding.  */
   
   #define REDO_SECTION_INFO_P(DECL) (1)
  @@ -1196,9 +1198,10 @@
         } while (0)
   /* APPLE LOCAL end zerofill turly 20020218  */
   
  -#endif /* CONFIG_DARWIN_H  */
  -
   #undef ASM_APP_ON
   #define ASM_APP_ON ""
   #undef ASM_APP_OFF
   #define ASM_APP_OFF ""
  +
  +/* APPLE LOCAL include guard for darwin.h */
  +#endif /* CONFIG_DARWIN_H  */
  
  
  
  1.22      +4 -2      gcc3/gcc/config/i386/darwin.h
  
  Index: darwin.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/i386/darwin.h,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- darwin.h  2002/08/26 05:40:29     1.21
  +++ darwin.h  2002/08/26 20:08:03     1.22
  @@ -42,12 +42,14 @@
     while (0)
   
   /* We want -fPIC by default, unless we're using -static to compile for
  -   the kernel or some such. 
  -   When -mdynamic-no-pic finally works, remove the "xx" below.  FIXME!!  */
  +   the kernel or some such.  */
   
   #undef CC1_SPEC
  +/* APPLE LOCAL dynamic-no-pic */
  +/* When -mdynamic-no-pic finally works, remove the "xx" below.  FIXME!!  */
   #define CC1_SPEC "%{!static:%{!mxxdynamic-no-pic:-fPIC}} %{!<faltivec}"
   
  +/* APPLE LOCAL AltiVec */
   #define CPP_ALTIVEC_SPEC "%{!<faltivec}"
   
   /* The Darwin assembler mostly follows AT&T syntax.  */
  
  
  
  1.27      +1 -1      gcc3/gcc/config/i386/i386.h
  
  Index: i386.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/i386/i386.h,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- i386.h    2002/08/11 20:45:54     1.26
  +++ i386.h    2002/08/26 20:08:03     1.27
  @@ -124,7 +124,7 @@
   /* ... overlap with subtarget options starts by 0x04000000.  */
   #define MASK_NO_RED_ZONE     0x04000000      /* Do not use red zone */
   
  -/* Temporary codegen switches */
  +/* APPLE LOCAL Macintosh alignment */
   #define MASK_INTEL_SYNTAX    0x10000000
   
   /* Use the floating point instructions */
  
  
  
  1.9       +0 -221    gcc3/gcc/config/m68k/m68k.c
  
  Index: m68k.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/m68k/m68k.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- m68k.c    2002/08/26 05:40:37     1.8
  +++ m68k.c    2002/08/26 20:08:04     1.9
  @@ -254,57 +254,6 @@
   {
     register int regno;
     register int mask = 0;
  -  HOST_WIDE_INT fsize = ((size) + 3) & -4;
  -
  -  if (frame_pointer_needed)
  -    {
  -      if (fsize < 0x8000)
  -     fprintf (stream, "\tlink fp,#%d\n", -fsize);
  -      else if (TARGET_68020)
  -     fprintf (stream, "\tlink.l fp,#%d\n", -fsize);
  -      else
  -     fprintf (stream, "\tlink fp,#0\n\tsub.l #%d,sp\n", fsize);
  -    }
  -  else if (fsize)
  -    {
  -      int amt = fsize + 4;
  -      /* Adding negative number is faster on the 68040.  */
  -      if (fsize + 4 < 0x8000)
  -     asm_fprintf (stream, "\tadd.w %0I%d,%Rsp\n", - amt);
  -      else
  -     asm_fprintf (stream, "\tadd.l %0I%d,%Rsp\n", - amt);
  -    }
  -
  -  for (regno = 16; regno < FIRST_PSEUDO_REGISTER; regno++)
  -    if (regs_ever_live[regno] && ! call_used_regs[regno])
  -      mask |= 1 << (regno - 16);
  -
  -  if (mask != 0)
  -    fprintf (stream, "\tfmovem.x #0x%x,-(sp)\n", mask & 0xff);
  -
  -  mask = 0;
  -  for (regno = 0; regno < 16; regno++)
  -    if (regs_ever_live[regno] && ! call_used_regs[regno])
  -      mask |= 1 << (15 - regno);
  -
  -  if (frame_pointer_needed)
  -    mask &= ~ (1 << (15-FRAME_POINTER_REGNUM));
  -
  -  if (exact_log2 (mask) >= 0)
  -    fprintf (stream, "\tmove.l %s,-(sp)\n", reg_names[15 - exact_log2 (mask)]);
  -  else
  -    if (mask) fprintf (stream, "\tmovem.l #0x%x,-(sp)\n", mask);
  -}
  -
  -#else  /* !CRDS && ! (NEWS && MOTOROLA) && ! (DPX2 && MOTOROLA) */
  -
  -static void
  -m68k_output_function_prologue (stream, size)
  -     FILE *stream;
  -     HOST_WIDE_INT size;
  -{
  -  register int regno;
  -  register int mask = 0;
     int num_saved_regs = 0;
     HOST_WIDE_INT fsize = (size + 3) & -4;
     HOST_WIDE_INT cfa_offset = INCOMING_FRAME_SP_OFFSET;
  @@ -804,176 +753,6 @@
   
     if (current_function_pops_args)
       fprintf (stream, "\trtd $%d\n", current_function_pops_args);
  -  else
  -    fprintf (stream, "\trts\n");
  -}
  -
  -#else
  -#if defined (DPX2) && defined (MOTOROLA)
  -
  -static void
  -m68k_output_function_epilogue (stream, size)
  -     FILE *stream;
  -     HOST_WIDE_INT size;
  -{
  -  register int regno;
  -  register int mask, fmask;
  -  register int nregs;
  -  HOST_WIDE_INT offset, foffset, fpoffset, first = 1;
  -  HOST_WIDE_INT fsize = ((size) + 3) & -4;
  -  int big = 0;
  -  rtx insn = get_last_insn ();
  -
  -  /* If the last insn was a BARRIER, we don't have to write any code.  */
  -  if (GET_CODE (insn) == NOTE)
  -    insn = prev_nonnote_insn (insn);
  -  if (insn && GET_CODE (insn) == BARRIER)
  -    {
  -      /* Output just a no-op so that debuggers don't get confused
  -      about which function the pc is in at this address.  */
  -      fprintf (stream, "\tnop\n");
  -      return;
  -    }
  -
  -  nregs = 0;  fmask = 0; fpoffset = 0;
  -  for (regno = 16; regno < 24; regno++)
  -    if (regs_ever_live[regno] && ! call_used_regs[regno])
  -      {
  -        nregs++;
  -     fmask |= 1 << (23 - regno);
  -      }
  -
  -  foffset = fpoffset + nregs * 12;
  -  nregs = 0;  mask = 0;
  -  if (frame_pointer_needed)
  -    regs_ever_live[FRAME_POINTER_REGNUM] = 0;
  -
  -  for (regno = 0; regno < 16; regno++)
  -    if (regs_ever_live[regno] && ! call_used_regs[regno])
  -      {
  -        nregs++;
  -     mask |= 1 << regno;
  -      }
  -
  -  offset = foffset + nregs * 4;
  -  if (offset + fsize >= 0x8000
  -      && frame_pointer_needed
  -      && (mask || fmask || fpoffset))
  -    {
  -      fprintf (stream, "\tmove.l #%d,a0\n", -fsize);
  -      fsize = 0, big = 1;
  -    }
  -
  -  if (nregs <= 2)
  -    {
  -      /* Restore each separately in the same order moveml does.
  -         Using two movel instructions instead of a single moveml
  -         is about 15% faster for the 68020 and 68030 at no expense
  -         in code size.  */
  -
  -      int i;
  -
  -      /* Undo the work from above.  */
  -      for (i = 0; i< 16; i++)
  -        if (mask & (1 << i))
  -          {
  -            if (big)
  -           fprintf (stream, "\tmove.l -%d(%s,a0.l),%s\n",
  -                    offset + fsize,
  -                    reg_names[FRAME_POINTER_REGNUM],
  -                    reg_names[i]);
  -            else if (! frame_pointer_needed)
  -           fprintf (stream, "\tmove.l (sp)+,%s\n",
  -                    reg_names[i]);
  -            else
  -           fprintf (stream, "\tmove.l -%d(%s),%s\n",
  -                    offset + fsize,
  -                    reg_names[FRAME_POINTER_REGNUM],
  -                    reg_names[i]);
  -            offset = offset - 4;
  -          }
  -    }
  -  else if (mask)
  -    {
  -      first = 1;
  -      for (regno = 0; regno < 16; regno++)
  -        if (mask & (1 << regno))
  -       {
  -         if (first && big)
  -           {
  -             fprintf (stream, "\tmovem.l -%d(%s,a0.l),%s",
  -                      offset + fsize,
  -                      reg_names[FRAME_POINTER_REGNUM],
  -                      reg_names[regno]);
  -             first = 0;
  -           }
  -         else if (first && ! frame_pointer_needed)
  -           {
  -             fprintf (stream, "\tmovem.l (sp)+,%s",
  -                      reg_names[regno]);
  -             first = 0;
  -           }
  -         else if (first)
  -           {
  -             fprintf (stream, "\tmovem.l -%d(%s),%s",
  -                      offset + fsize,
  -                      reg_names[FRAME_POINTER_REGNUM],
  -                      reg_names[regno]);
  -             first = 0;
  -           }
  -         else
  -           fprintf (stream, "/%s", reg_names[regno]);
  -       }
  -      fprintf (stream, "\n");
  -    }
  -
  -  if (fmask)
  -    {
  -      first = 1;
  -      for (regno = 16; regno < 24; regno++)
  -        if (fmask & (1 << (23 - regno)))
  -       {
  -         if (first && big)
  -           {
  -             fprintf (stream, "\tfmovem.x -%d(%s,a0.l),%s",
  -                      foffset + fsize,
  -                      reg_names[FRAME_POINTER_REGNUM],
  -                      reg_names[regno]);
  -             first = 0;
  -           }
  -         else if (first && ! frame_pointer_needed)
  -           {
  -             fprintf (stream, "\tfmovem.x (sp)+,%s",
  -                      reg_names[regno]);
  -             first = 0;
  -           }
  -         else if (first)
  -           {
  -             fprintf (stream, "\tfmovem.x -%d(%s),%s",
  -                      foffset + fsize,
  -                      reg_names[FRAME_POINTER_REGNUM],
  -                      reg_names[regno]);
  -             first = 0;
  -           }
  -         else
  -           fprintf (stream, "/%s", reg_names[regno]);
  -       }
  -      fprintf (stream, "\n");
  -    }
  -
  -  if (frame_pointer_needed)
  -    fprintf (stream, "\tunlk %s\n",
  -          reg_names[FRAME_POINTER_REGNUM]);
  -  else if (fsize)
  -    {
  -      if (fsize + 4 < 0x8000)
  -     fprintf (stream, "\tadd.w #%d,sp\n", fsize + 4);
  -      else
  -     fprintf (stream, "\tadd.l #%d,sp\n", fsize + 4);
  -    }
  -
  -  if (current_function_pops_args)
  -    fprintf (stream, "\trtd #%d\n", current_function_pops_args);
     else
       fprintf (stream, "\trts\n");
   }
  
  
  
  1.74      +0 -3      gcc3/gcc/config/rs6000/darwin.h
  
  Index: darwin.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/rs6000/darwin.h,v
  retrieving revision 1.73
  retrieving revision 1.74
  diff -u -r1.73 -r1.74
  --- darwin.h  2002/08/26 05:40:47     1.73
  +++ darwin.h  2002/08/26 20:08:04     1.74
  @@ -146,9 +146,6 @@
   #define RS6000_OUTPUT_BASENAME(FILE, NAME)   \
       assemble_name (FILE, NAME);
   
  -/* This is how to output a command to make the user-level label named NAME
  -   defined for reference from other files.  */
  -
   /* Globalizing directive for a label.  */
   #undef GLOBAL_ASM_OP
   #define GLOBAL_ASM_OP "\t.globl "
  
  
  
  1.168     +1 -0      gcc3/gcc/config/rs6000/rs6000.c
  
  Index: rs6000.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/rs6000/rs6000.c,v
  retrieving revision 1.167
  retrieving revision 1.168
  diff -u -r1.167 -r1.168
  --- rs6000.c  2002/08/26 05:40:47     1.167
  +++ rs6000.c  2002/08/26 20:08:04     1.168
  @@ -13198,6 +13198,7 @@
     using_mfcr_multiple = (rs6000_cpu == PROCESSOR_PPC601
                         || rs6000_cpu == PROCESSOR_PPC603
                         || rs6000_cpu == PROCESSOR_PPC750
  +                      /* APPLE LOCAL ? */
                         || rs6000_cpu == PROCESSOR_PPC7400
                         || optimize_size);
   
  
  
  
  1.77      +49 -100   gcc3/gcc/config/rs6000/rs6000.md
  
  Index: rs6000.md
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/config/rs6000/rs6000.md,v
  retrieving revision 1.76
  retrieving revision 1.77
  diff -u -r1.76 -r1.77
  --- rs6000.md 2002/08/26 05:40:48     1.76
  +++ rs6000.md 2002/08/26 20:08:05     1.77
  @@ -11234,104 +11234,51 @@
     DONE;
   }")
   
  -;MERGE; ;; APPLE LOCAL sibcall patterns
  -;MERGE; ;;- tail calls
  -;MERGE; (define_expand "sibcall"
  -;MERGE;   [(parallel [(call (mem:SI (match_operand 0 "address_operand" ""))
  -;MERGE;                  (match_operand 1 "" ""))
  -;MERGE;            (use (match_operand 2 "" ""))
  -;MERGE;            (use (scratch:SI))
  -;MERGE;            (return)])]
  -;MERGE;   ""
  -;MERGE;   "
  -;MERGE; {
  -;MERGE; #if TARGET_MACHO
  -;MERGE;   /* APPLE LOCAL  dynamic-no-pic  */
  -;MERGE;   if (MACHOPIC_INDIRECT)
  -;MERGE;     operands[0] = machopic_indirect_call_target (operands[0]);
  -;MERGE; #endif
  -;MERGE; 
  -;MERGE;   if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != CONST_INT)
  -;MERGE;     abort ();
  -;MERGE; 
  -;MERGE;   operands[0] = XEXP (operands[0], 0);
  -;MERGE; 
  -;MERGE; }")
  -;MERGE; 
  -;MERGE; ;; this and similar patterns must be marked as using LR, otherwise
  -;MERGE; ;; dataflow will try to delete the store into it.  This is true
  -;MERGE; ;; even when the actual reg to jump to is in CTR, when LR was
  -;MERGE; ;; saved and restored around the PIC-setting BCL.
  -;MERGE; (define_insn "*sibcall_symbolic"
  -;MERGE;   [(call (mem:SI (match_operand:SI 0 "call_operand" "s,c"))
  -;MERGE;       (match_operand 1 "" ""))
  -;MERGE;    (use (match_operand 2 "" ""))
  -;MERGE;    (use (match_scratch:SI 3 "=l,l"))
  -;MERGE;    (return)]
  -;MERGE;   "! TARGET_64BIT && DEFAULT_ABI == ABI_DARWIN"
  -;MERGE;   "*
  -;MERGE; {
  -;MERGE;   switch (which_alternative)
  -;MERGE;     {
  -;MERGE;       case 0:  return \"b %z0\";
  -;MERGE;       case 1:  return \"b%T0\";
  -;MERGE;       default:  abort();
  -;MERGE;     }
  -;MERGE; }"
  -;MERGE;   [(set_attr "type" "branch")
  -;MERGE;    (set_attr "length" "4")])
  -;MERGE; 
  -;MERGE; (define_expand "sibcall_value"
  -;MERGE;   [(parallel [(set (match_operand 0 "register_operand" "")
  -;MERGE;              (call (mem:SI (match_operand 1 "address_operand" ""))
  -;MERGE;                    (match_operand 2 "" "")))
  -;MERGE;            (use (match_operand 3 "" ""))
  -;MERGE;            (use (scratch:SI))
  -;MERGE;            (return)])]
  -;MERGE;   ""
  -;MERGE;   "
  -;MERGE; {
  -;MERGE; #if TARGET_MACHO
  -;MERGE;   /* APPLE LOCAL  dynamic-no-pic  */
  -;MERGE;   if (MACHOPIC_INDIRECT)
  -;MERGE;     operands[1] = machopic_indirect_call_target (operands[1]);
  -;MERGE; #endif
  -;MERGE; 
  -;MERGE;   if (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != CONST_INT)
  -;MERGE;     abort ();
  -;MERGE; 
  -;MERGE;   operands[1] = XEXP (operands[1], 0);
  -;MERGE; 
  -;MERGE; }")
  -;MERGE; 
  -;MERGE; (define_insn "*sibcall_value_symbolic"
  -;MERGE;   [(set (match_operand 0 "" "")
  -;MERGE;      (call (mem:SI (match_operand:SI 1 "call_operand" "s,c"))
  -;MERGE;            (match_operand 2 "" "")))
  -;MERGE;    (use (match_operand:SI 3 "" ""))
  -;MERGE;    (use (match_scratch:SI 4 "=l,l"))
  -;MERGE;    (return)]
  -;MERGE;   "! TARGET_64BIT && DEFAULT_ABI == ABI_DARWIN"
  -;MERGE;   "*
  -;MERGE; {
  -;MERGE;   switch (which_alternative)
  -;MERGE;     {
  -;MERGE;       case 0:  return \"b %z1\";
  -;MERGE;       case 1:  return \"b%T1\";
  -;MERGE;       default:  abort();
  -;MERGE;     }
  -;MERGE; }"
  -;MERGE;   [(set_attr "type" "branch")
  -;MERGE;    (set_attr "length" "4")])
  -;MERGE; 
  -;MERGE; (define_expand "sibcall_epilogue"
  -;MERGE;   [(use (const_int 0))]
  -;MERGE;   "TARGET_SCHED_PROLOG"
  -;MERGE;   "
  -;MERGE; {
  -;MERGE;       rs6000_emit_epilogue (TRUE);
  -;MERGE;       DONE;
  -;MERGE; }")
  +;; APPLE LOCAL sibcall patterns
  +;; APPLE MERGE modify FSF patterns below instead?
  +;; this and similar patterns must be marked as using LR, otherwise
  +;; dataflow will try to delete the store into it.  This is true
  +;; even when the actual reg to jump to is in CTR, when LR was
  +;; saved and restored around the PIC-setting BCL.
  +(define_insn "*sibcall_symbolic"
  +  [(call (mem:SI (match_operand:SI 0 "call_operand" "s,c"))
  +      (match_operand 1 "" ""))
  +   (use (match_operand 2 "" ""))
  +   (use (match_scratch:SI 3 "=l,l"))
  +   (return)]
  +  "! TARGET_64BIT && DEFAULT_ABI == ABI_DARWIN"
  +  "*
  +{
  +  switch (which_alternative)
  +    {
  +      case 0:  return \"b %z0\";
  +      case 1:  return \"b%T0\";
  +      default:  abort();
  +    }
  +}"
  +  [(set_attr "type" "branch")
  +   (set_attr "length" "4")])
  +
  +(define_insn "*sibcall_value_symbolic"
  +  [(set (match_operand 0 "" "")
  +     (call (mem:SI (match_operand:SI 1 "call_operand" "s,c"))
  +           (match_operand 2 "" "")))
  +   (use (match_operand:SI 3 "" ""))
  +   (use (match_scratch:SI 4 "=l,l"))
  +   (return)]
  +  "! TARGET_64BIT && DEFAULT_ABI == ABI_DARWIN"
  +  "*
  +{
  +  switch (which_alternative)
  +    {
  +      case 0:  return \"b %z1\";
  +      case 1:  return \"b%T1\";
  +      default:  abort();
  +    }
  +}"
  +  [(set_attr "type" "branch")
  +   (set_attr "length" "4")])
  +;; APPLE LOCAL end sibcall patterns
   
   ;; sibling call patterns
   (define_expand "sibcall"
  @@ -11344,7 +11291,8 @@
     "
   {
   #if TARGET_MACHO
  -  if (flag_pic)
  +  /* APPLE LOCAL  dynamic-no-pic  */
  +  if (MACHOPIC_INDIRECT)
       operands[0] = machopic_indirect_call_target (operands[0]);
   #endif
   
  @@ -11530,7 +11478,8 @@
     "
   {
   #if TARGET_MACHO
  -  if (flag_pic)
  +  /* APPLE LOCAL  dynamic-no-pic  */
  +  if (MACHOPIC_INDIRECT)
       operands[1] = machopic_indirect_call_target (operands[1]);
   #endif
   
  
  
  
  1.36      +1 -1      gcc3/gcc/cp/call.c
  
  Index: call.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/call.c,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- call.c    2002/08/26 05:40:58     1.35
  +++ call.c    2002/08/26 20:08:07     1.36
  @@ -4523,7 +4523,7 @@
         t = build_pointer_type (TREE_TYPE (fn));
         if (DECL_CONTEXT (fn) && TYPE_JAVA_INTERFACE (DECL_CONTEXT (fn)))
        fn = build_java_interface_fn_ref (fn, *p);
  -#if 0 /* APPLE MERGE update this */
  +#if 0 /* APPLE MERGE make kext options work again */
         /* APPLE LOCAL begin -findirect-virtual-calls 2001-10-30 sts */
         /* If this is not really supposed to be a virtual call, find the
            vtable corresponding to the correct type, and use it.  */
  
  
  
  1.41      +9 -0      gcc3/gcc/cp/cp-dmp-tree.c
  
  Index: cp-dmp-tree.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/cp-dmp-tree.c,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- cp-dmp-tree.c     2002/08/08 03:20:00     1.40
  +++ cp-dmp-tree.c     2002/08/26 20:08:07     1.41
  @@ -520,6 +520,15 @@
   }
   
   static void
  +print_BASELINK (FILE *file,
  +             const char *annotation ATTRIBUTE_UNUSED,
  +             tree node,
  +             int indent)
  +{
  +  print_operands (file, node, indent, TRUE, NULL);
  +}
  +
  +static void
   print_TEMPLATE_DECL (FILE *file,
                     const char *annotation ATTRIBUTE_UNUSED,
                     tree node,
  
  
  
  1.12      +1 -1      gcc3/gcc/cp/cp-idebug.c
  
  Index: cp-idebug.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/cp-idebug.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- cp-idebug.c       2002/08/16 17:06:59     1.11
  +++ cp-idebug.c       2002/08/26 20:08:07     1.12
  @@ -355,7 +355,7 @@
   fn_noden( TYPE_PTRMEMFUNC_FN_TYPE )
   fn_noden( TYPE_PTRMEMFUNC_OBJECT_TYPE )
   fn_noden( TYPE_GET_PTRMEMFUNC_TYPE )
  -#if 0 /* APPLE MERGE */
  +#if 0 /* this one doesn't have a return value */
   fn_2( TYPE_SET_PTRMEMFUNC_TYPE, struct lang_type *, tree, struct lang_type*)
   #endif
   fn_noden( DELTA2_FROM_PTRMEMFUNC )
  
  
  
  1.19      +0 -2      gcc3/gcc/cp/cp-lang.c
  
  Index: cp-lang.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/cp-lang.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- cp-lang.c 2002/08/26 05:40:58     1.18
  +++ cp-lang.c 2002/08/26 20:08:07     1.19
  @@ -196,8 +196,6 @@
   #define LANG_HOOKS_FINISH_FILE objc_finish_file
   #undef LANG_HOOKS_INIT_OPTIONS
   #define LANG_HOOKS_INIT_OPTIONS objcplus_init_options
  -#undef LANG_HOOKS_DECODE_OPTION
  -#define LANG_HOOKS_DECODE_OPTION objc_decode_option
   /* APPLE LOCAL begin PFE */
   #undef LANG_HOOKS_PFE_LANG_INIT
   #define LANG_HOOKS_PFE_LANG_INIT objc_pfe_lang_init
  
  
  
  1.19      +79 -56    gcc3/gcc/cp/cp-parse.in
  
  Index: cp-parse.in
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/cp-parse.in,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- cp-parse.in       2002/08/08 03:20:00     1.18
  +++ cp-parse.in       2002/08/26 20:08:07     1.19
  @@ -63,8 +63,6 @@
   #include "objcp-decl.h"
   end ifobjcp
   
  -extern struct obstack permanent_obstack;
  -
   /* Like YYERROR but do call yyerror.  */
   #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
   
  @@ -1347,16 +1345,20 @@
        /* Refer to the address of a label as a pointer.  */
        | ANDAND identifier
                { $$ = finish_label_address_expr ($2); }
  -     | SIZEOF unary_expr  %prec UNARY
  -             { $$ = finish_sizeof ($2); }
  -     | SIZEOF '(' type_id ')'  %prec HYPERUNARY
  +     | sizeof unary_expr  %prec UNARY
  +             { $$ = finish_sizeof ($2);
  +               skip_evaluation--; }
  +     | sizeof '(' type_id ')'  %prec HYPERUNARY
                { $$ = finish_sizeof (groktypename ($3.t));
  -               check_for_new_type ("sizeof", $3); }
  -     | ALIGNOF unary_expr  %prec UNARY
  -             { $$ = finish_alignof ($2); }
  -     | ALIGNOF '(' type_id ')'  %prec HYPERUNARY
  +               check_for_new_type ("sizeof", $3);
  +               skip_evaluation--; }
  +     | alignof unary_expr  %prec UNARY
  +             { $$ = finish_alignof ($2);
  +               skip_evaluation--; }
  +     | alignof '(' type_id ')'  %prec HYPERUNARY
                { $$ = finish_alignof (groktypename ($3.t));
  -               check_for_new_type ("alignof", $3); }
  +               check_for_new_type ("alignof", $3);
  +               skip_evaluation--; }
        /* APPLE LOCAL AltiVec */
        | VEC_STEP unary_expr  %prec UNARY
                { $$ = altivec_vec_step_expr ($2); }
  @@ -1616,11 +1618,11 @@
   
   do_id:
                {
  -               /* If lastiddecl is a TREE_LIST, it's a baselink, which
  -                  means that we're in an expression like S::f<int>, so
  -                  don't do_identifier; we only do that for unqualified
  +               /* If lastiddecl is a BASELINK we're in an
  +                  expression like S::f<int>, so don't
  +                  do_identifier; we only do that for unqualified
                     identifiers.  */
  -               if (!lastiddecl || TREE_CODE (lastiddecl) != TREE_LIST)
  +               if (!lastiddecl || !BASELINK_P (lastiddecl))
                    $$ = do_identifier ($<ttype>-1, 1, NULL_TREE);
                  else
                    $$ = $<ttype>-1;
  @@ -1814,20 +1816,15 @@
        | overqualified_id LEFT_RIGHT
                { $$ = parse_finish_call_expr ($1, NULL_TREE, 0); }
           | object object_template_id %prec UNARY
  -                {
  -               $$ = build_x_component_ref ($$, $2, NULL_TREE);
  -             }
  +                { $$ = finish_class_member_access_expr ($$, $2); }
           | object object_template_id '(' nonnull_exprlist ')'
                   { $$ = finish_object_call_expr ($2, $1, $4); }
        | object object_template_id LEFT_RIGHT
                   { $$ = finish_object_call_expr ($2, $1, NULL_TREE); }
        | object unqualified_id  %prec UNARY
  -             { $$ = build_x_component_ref ($$, $2, NULL_TREE); }
  +             { $$ = finish_class_member_access_expr ($$, $2); }
        | object overqualified_id  %prec UNARY
  -             { if (processing_template_decl)
  -                 $$ = build_min_nt (COMPONENT_REF, $1, $2);
  -               else
  -                 $$ = build_object_ref ($$, OP0 ($2), OP1 ($2)); }
  +                { $$ = finish_class_member_access_expr ($1, $2); }
        | object unqualified_id '(' nonnull_exprlist ')'
                   { $$ = finish_object_call_expr ($2, $1, $4); }
        | object unqualified_id LEFT_RIGHT
  @@ -2141,6 +2138,18 @@
                { $$ = tree_cons ($1, NULL_TREE, NULL_TREE); }
        ;
   
  +sizeof:
  +     SIZEOF { skip_evaluation++; }
  +     ;
  +
  +alignof:
  +     ALIGNOF { skip_evaluation++; }
  +     ;
  +
  +typeof:
  +     TYPEOF { skip_evaluation++; }
  +     ;
  +
   /* A typespec (but not a type qualifier).
      Once we have seen one of these in a declaration,
      if a typedef name appears then it is being redeclared.  */
  @@ -2160,12 +2169,14 @@
   end ifobjcp
        | complete_type_name
                { $$.t = $1; $$.new_type_flag = 0; $$.lookups = NULL_TREE; }
  -     | TYPEOF '(' expr ')'
  +     | typeof '(' expr ')'
                { $$.t = finish_typeof ($3);
  -               $$.new_type_flag = 0; $$.lookups = NULL_TREE; }
  -     | TYPEOF '(' type_id ')'
  +               $$.new_type_flag = 0; $$.lookups = NULL_TREE;
  +               skip_evaluation--; }
  +     | typeof '(' type_id ')'
                { $$.t = groktypename ($3.t);
  -               $$.new_type_flag = 0; $$.lookups = NULL_TREE; }
  +               $$.new_type_flag = 0; $$.lookups = NULL_TREE;
  +               skip_evaluation--; }
        | SIGOF '(' expr ')'
                { tree type = TREE_TYPE ($3);
   
  @@ -2741,7 +2752,7 @@
   ifobjcp
        /* ObjC @defs(class) construct.  */
           | DEFS '(' identifier ')' 
  -             { get_class_ivars ($3); }
  +             { objcp_get_class_ivars ($3); }
   end ifobjcp
        ;
   
  @@ -5001,39 +5012,41 @@
            fn = lookup_namespace_name (scope, name);
          else
            {
  -           if (TREE_CODE (name) == TEMPLATE_ID_EXPR)
  +           if (!COMPLETE_TYPE_P (scope) && !TYPE_BEING_DEFINED (scope))
  +             {
  +               error ("incomplete type '%T' cannot be used to name a scope",
  +                      scope);
  +               return error_mark_node;
  +             }
  +           else if (TREE_CODE (name) == TEMPLATE_ID_EXPR)
                {
                  template_id = name;
                  template_args = TREE_OPERAND (name, 1);
                  name = TREE_OPERAND (name, 0);
                }
              else 
  -             template_id = NULL_TREE;
  -
  -           if (TREE_CODE (name) == OVERLOAD)
  -             name = DECL_NAME (get_first_fn (name));
  -           fn = lookup_member (scope, name, /*protect=*/1, 
  -                               /*prefer_type=*/0);
  -           if (BASELINK_P (fn) && template_id)
  -             BASELINK_FUNCTIONS (fn) = build_nt (TEMPLATE_ID_EXPR,
  -                                                 BASELINK_FUNCTIONS (fn),
  -                                                 template_args);
  -           if (BASELINK_P (fn) 
  -               && current_class_type 
  -               && DERIVED_FROM_P (scope, current_class_type))
  -             {
  -               scope = lookup_base (current_class_type, scope,
  -                                    ba_ignore | ba_quiet, NULL);
  -               if (scope)
  -                 {
  -                   BASELINK_ACCESS_BINFO (fn) = scope;
  -                   BASELINK_BINFO (fn) 
  -                     = lookup_base (scope,
  -                                    BINFO_TYPE (BASELINK_BINFO (fn)),
  -                                    ba_ignore | ba_quiet,
  -                                    NULL);
  -                 }
  +             {
  +               template_id = NULL_TREE;
  +               template_args = NULL_TREE;
                }
  +
  +           if (BASELINK_P (name))
  +             fn = name;
  +           else 
  +             {
  +               if (TREE_CODE (name) == OVERLOAD)
  +                 name = DECL_NAME (get_first_fn (name));
  +               fn = lookup_member (scope, name, /*protect=*/1, 
  +                                   /*prefer_type=*/0);
  +               if (BASELINK_P (fn) && template_id)
  +                 BASELINK_FUNCTIONS (fn) 
  +                   = build_nt (TEMPLATE_ID_EXPR,
  +                               BASELINK_FUNCTIONS (fn),
  +                               template_args);
  +             }
  +           if (current_class_type)
  +             fn = (adjust_result_of_qualified_name_lookup 
  +                   (fn, scope, current_class_type));
            }
        }
         disallow_virtual = true;
  @@ -5079,9 +5092,19 @@
   
              if (DERIVED_FROM_P (scope, current_class_type)
                  && current_class_ref)
  -             return finish_object_call_expr (fn,
  -                                             current_class_ref,
  -                                             args);
  +             {
  +               fn = build_baselink (lookup_base (current_class_type,
  +                                                 scope,
  +                                                 ba_any,
  +                                                 NULL),
  +                                    TYPE_BINFO (current_class_type),
  +                                    fn,
  +                                    /*optype=*/NULL_TREE);
  +               return finish_object_call_expr (fn,
  +                                               current_class_ref,
  +                                               args);
  +             }
  +
   
              access_scope = current_class_type;
              while (!DERIVED_FROM_P (scope, access_scope))
  
  
  
  1.88      +1 -413    gcc3/gcc/cp/decl2.c
  
  Index: decl2.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/decl2.c,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- decl2.c   2002/08/26 05:40:59     1.87
  +++ decl2.c   2002/08/26 20:08:07     1.88
  @@ -133,418 +133,6 @@
   
   tree global_namespace;
   
  -#if 1 /* APPLE MERGE move all this stuff */
  -/* APPLE LOCAL begin -findirect-virtual-calls 2001-10-30 sts */
  -/* Nonzero if all calls to virtual functions should cause indirection
  -   through a vtable.  */
  -
  -int flag_indirect_virtual_calls;
  -/* APPLE LOCAL end -findirect-virtual-calls 2001-10-30 sts */
  -
  -/* APPLE LOCAL begin terminated-vtables */
  -/* Nonzero means append a zero word to vtables.
  -   Used by darwin kernel driver dynamic-loader to find the ends of vtables for 
patching.  */
  -int flag_terminated_vtables = 0;
  -/* APPLE LOCAL end terminated-vtables */
  -
  -/* 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.  */
  -int flag_preprocessed = 0;
  -/* APPLE LOCAL end private extern  Radar 2872481 ilr */
  -
  -/* APPLE LOCAL begin apple-kext   Radar #2849864 ilr */
  -/* 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...  */
  -int flag_apple_kext = 0;
  -/* APPLE LOCAL end apple-kext ilr */
  -
  -/* 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.  */
  -int flag_clone_structors = 0;
  -/* APPLE LOCAL begin structor thunks */
  -
  -#endif
  -
  -#if 0 /* APPLE MERGE */
  -/* Nonzero means make the default pedwarns warnings instead of errors.
  -   The value of this flag is ignored if -pedantic is specified.  */
  -
  -/* APPLE LOCAL be permissive by default */
  -int flag_permissive = 1;
  -
  -/* Table of language-dependent -f options.
  -   STRING is the option name.  VARIABLE is the address of the variable.
  -   ON_VALUE is the value to store in VARIABLE
  -    if `-fSTRING' is seen as an option.
  -   (If `-fno-STRING' is seen as an option, the opposite value is stored.)  */
  -
  -static const struct { const char *const string; int *const variable; const int 
on_value;}
  -lang_f_options[] =
  -{
  -  /* C/C++ options.  */
  -  {"signed-char", &flag_signed_char, 1},
  -  {"unsigned-char", &flag_signed_char, 0},
  -  {"signed-bitfields", &flag_signed_bitfields, 1},
  -  {"unsigned-bitfields", &flag_signed_bitfields, 0},
  -  {"short-enums", &flag_short_enums, 1},
  -  {"short-double", &flag_short_double, 1},
  -  {"short-wchar", &flag_short_wchar, 1},
  -  {"asm", &flag_no_asm, 0},
  -  {"builtin", &flag_no_builtin, 0},
  -  /* APPLE LOCAL Pascal strings 2001-07-05 zll */
  -  {"pascal-strings", &flag_pascal_strings, 1},
  -  /* APPLE LOCAL begin AltiVec */
  -  {"altivec", &flag_altivec, 1},
  -  {"vec", &flag_altivec, 1},
  -  /* APPLE LOCAL end AltiVec */
  -  /* APPLE LOCAL begin constant cfstrings */
  -  {"constant-cfstrings", &flag_constant_cfstrings, 1},
  -  /* APPLE LOCAL end constant cfstrings */
  -
  -  /* C++-only options.  */
  -  {"access-control", &flag_access_control, 1},
  -  {"check-new", &flag_check_new, 1},
  -  {"conserve-space", &flag_conserve_space, 1},
  -  {"const-strings", &flag_const_strings, 1},
  -  {"default-inline", &flag_default_inline, 1},
  -  {"dollars-in-identifiers", &dollars_in_ident, 1},
  -  {"elide-constructors", &flag_elide_constructors, 1},
  -  {"enforce-eh-specs", &flag_enforce_eh_specs, 1},
  -  {"external-templates", &flag_external_templates, 1},
  -  {"for-scope", &flag_new_for_scope, 2},
  -  {"gnu-keywords", &flag_no_gnu_keywords, 0},
  -  {"handle-exceptions", &flag_exceptions, 1},
  -  {"implement-inlines", &flag_implement_inlines, 1},
  -  {"implicit-inline-templates", &flag_implicit_inline_templates, 1},
  -  {"implicit-templates", &flag_implicit_templates, 1},
  -  /* APPLE LOCAL -findirect-virtual-calls 2001-10-30 sts */
  -  {"indirect-virtual-calls", &flag_indirect_virtual_calls, 1},
  -  {"ms-extensions", &flag_ms_extensions, 1},
  -  {"nonansi-builtins", &flag_no_nonansi_builtin, 0},
  -  {"optional-diags", &flag_optional_diags, 1},
  -  {"permissive", &flag_permissive, 1},
  -  {"repo", &flag_use_repository, 1},
  -  {"rtti", &flag_rtti, 1},
  -  {"stats", &flag_detailed_statistics, 1},
  -  /* APPLE LOCAL terminated-vtables */
  -  { "terminated-vtables", &flag_terminated_vtables, 1},
  -  {"vtable-gc", &flag_vtable_gc, 1},
  -  {"use-cxa-atexit", &flag_use_cxa_atexit, 1},
  -  /* APPLE LOCAL apple-kext   Radar #2849864 ilr */
  -  {"apple-kext", &flag_apple_kext, 1},
  -/* APPLE LOCAL structor thunks */
  -  {"clone-structors", &flag_clone_structors, 1},
  -  {"weak", &flag_weak, 1}
  -};
  -
  -/* The list of `-f' options that we no longer support.  The `-f'
  -   prefix is not given in this table.  The `-fno-' variants are not
  -   listed here.  This table must be kept in alphabetical order.  */
  -static const char * const unsupported_options[] = {
  -  "all-virtual",
  -  "cond-mismatch",
  -  "enum-int-equiv",
  -  "guiding-decls",
  -  "honor-std",
  -  "huge-objects",
  -  "labels-ok",
  -  "new-abi",
  -  "nonnull-objects",
  -  "squangle",
  -  "strict-prototype",
  -  "this-is-variable",
  -  "vtable-thunks",
  -  "xref"
  -};
  -
  -/* Compare two option strings, pointed two by P1 and P2, for use with
  -   bsearch.  */
  -
  -static int
  -compare_options (p1, p2)
  -     const PTR p1;
  -     const PTR p2;
  -{
  -  return strcmp (*((const char *const *) p1), *((const char *const *) p2));
  -}
  -
  -/* Decode the string P as a language-specific option.
  -   Return the number of strings consumed for a valid option.
  -   Otherwise return 0.  Should not complain if it does not
  -   recognise the option.  */
  -
  -int   
  -cxx_decode_option (argc, argv)
  -     int argc;
  -     char **argv;
  -{
  -  int strings_processed;
  -  const char *p = argv[0];
  -
  -  strings_processed = cpp_handle_option (parse_in, argc, argv);
  -
  -  if (p[0] == '-' && p[1] == 'f')
  -    {
  -      /* Some kind of -f option.
  -      P's value is the option sans `-f'.
  -      Search for it in the table of options.  */
  -      const char *option_value = NULL;
  -      const char *positive_option;
  -      size_t j;
  -
  -      p += 2;
  -      /* Try special -f options.  */
  -
  -      /* See if this is one of the options no longer supported.  We
  -      used to support these options, so we continue to accept them,
  -      with a warning.  */
  -      if (strncmp (p, "no-", strlen ("no-")) == 0)
  -     positive_option = p + strlen ("no-");
  -      else
  -     positive_option = p;
  -
  -      /* If the option is present, issue a warning.  Indicate to our
  -      caller that the option was processed successfully.  */
  -      if (bsearch (&positive_option, 
  -                unsupported_options, 
  -                ARRAY_SIZE (unsupported_options),
  -                sizeof (unsupported_options[0]),
  -                compare_options))
  -     {
  -       warning ("-f%s is no longer supported", p);
  -       return 1;
  -     }
  -
  -      if (!strcmp (positive_option, "handle-exceptions"))
  -     warning ("-fhandle-exceptions has been renamed to -fexceptions (and is now on 
by default)");
  -      else if (!strcmp (p, "alt-external-templates"))
  -     {
  -       flag_external_templates = 1;
  -       flag_alt_external_templates = 1;
  -          cp_deprecated ("-falt-external-templates");
  -     }
  -      else if (!strcmp (p, "no-alt-external-templates"))
  -     flag_alt_external_templates = 0;
  -      else if (!strcmp (p, "repo"))
  -     {
  -       flag_use_repository = 1;
  -       flag_implicit_templates = 0;
  -     }
  -      else if (!strcmp (p, "external-templates"))
  -        {
  -          flag_external_templates = 1;
  -          cp_deprecated ("-fexternal-templates");
  -        }
  -      else if ((option_value
  -                = skip_leading_substring (p, "template-depth-")))
  -     max_tinst_depth
  -       = read_integral_parameter (option_value, p - 2, max_tinst_depth);
  -      else if ((option_value
  -                = skip_leading_substring (p, "name-mangling-version-")))
  -     {
  -       warning ("-fname-mangling-version is no longer supported");
  -       return 1;
  -     }
  -      /* 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 */
  -      else if ((option_value = skip_leading_substring (p, "no-builtin-")))
  -     disable_builtin_function (option_value);
  -      else if (dump_switch_p (p))
  -     ;
  -      else 
  -     {
  -       int found = 0;
  -
  -       for (j = 0; !found && j < ARRAY_SIZE (lang_f_options); j++)
  -         {
  -           if (!strcmp (p, lang_f_options[j].string))
  -             {
  -               *lang_f_options[j].variable = lang_f_options[j].on_value;
  -               /* A goto here would be cleaner,
  -                  but breaks the VAX pcc.  */
  -               found = 1;
  -             }
  -           else if (p[0] == 'n' && p[1] == 'o' && p[2] == '-'
  -                    && ! strcmp (p+3, lang_f_options[j].string))
  -             {
  -               *lang_f_options[j].variable = ! lang_f_options[j].on_value;
  -               found = 1;
  -             }
  -         }
  -
  -         /* APPLE LOCAL begin apple-kext   Radar #2849864 ilr */
  -         /* -fapple-kext is the same as -findirect-virtual-calls and
  -            -fterminated-vtables.  */
  -         if (flag_apple_kext)
  -           {
  -             flag_indirect_virtual_calls = 1;
  -             flag_terminated_vtables     = 1;
  -           }
  -         /* APPLE LOCAL end apple-kext ilr */
  -
  -       return found;
  -     }
  -    }
  -  else if (p[0] == '-' && p[1] == 'W')
  -    {
  -      int setting = 1;
  -
  -      /* The -W options control the warning behavior of the compiler.  */
  -      p += 2;
  -
  -      if (p[0] == 'n' && p[1] == 'o' && p[2] == '-')
  -     setting = 0, p += 3;
  -
  -      if (!strcmp (p, "implicit"))
  -     warn_implicit = setting;
  -      else if (!strcmp (p, "long-long"))
  -     warn_long_long = setting;
  -      /* APPLE LOCAL begin long double */
  -      else if (!strcmp (p, "long-double"))
  -        warn_long_double = setting;
  -      /* APPLE LOCAL end long double */
  -      else if (!strcmp (p, "return-type"))
  -     warn_return_type = setting;
  -      else if (!strcmp (p, "ctor-dtor-privacy"))
  -     warn_ctor_dtor_privacy = setting;
  -      else if (!strcmp (p, "write-strings"))
  -     warn_write_strings = setting;
  -      else if (!strcmp (p, "cast-qual"))
  -     warn_cast_qual = setting;
  -      else if (!strcmp (p, "char-subscripts"))
  -     warn_char_subscripts = setting;
  -      else if (!strcmp (p, "pointer-arith"))
  -     warn_pointer_arith = setting;
  -      else if (!strcmp (p, "missing-prototypes"))
  -     warn_missing_prototypes = setting;
  -      else if (!strcmp (p, "strict-prototypes"))
  -     {
  -       if (setting == 0)
  -         warning ("-Wno-strict-prototypes is not supported in C++");
  -     }
  -      else if (!strcmp (p, "redundant-decls"))
  -     warn_redundant_decls = setting;
  -      else if (!strcmp (p, "missing-braces"))
  -     warn_missing_braces = setting;
  -      else if (!strcmp (p, "sign-compare"))
  -     warn_sign_compare = setting;
  -      else if (!strcmp (p, "float-equal"))
  -     warn_float_equal = setting;
  -      else if (!strcmp (p, "format"))
  -     set_Wformat (setting);
  -      else if (!strcmp (p, "format=2"))
  -     set_Wformat (2);
  -      else if (!strcmp (p, "format-y2k"))
  -     warn_format_y2k = setting;
  -      else if (!strcmp (p, "format-extra-args"))
  -     warn_format_extra_args = setting;
  -      else if (!strcmp (p, "format-nonliteral"))
  -     warn_format_nonliteral = setting;
  -      else if (!strcmp (p, "format-security"))
  -     warn_format_security = setting;
  -      else if (!strcmp (p, "missing-format-attribute"))
  -     warn_missing_format_attribute = setting;
  -      else if (!strcmp (p, "conversion"))
  -     warn_conversion = setting;
  -      else if (!strcmp (p, "parentheses"))
  -     warn_parentheses = setting;
  -      else if (!strcmp (p, "non-virtual-dtor"))
  -     warn_nonvdtor = setting;
  -      else if (!strcmp (p, "reorder"))
  -     warn_reorder = setting;
  -      else if (!strcmp (p, "synth"))
  -     warn_synth = setting;
  -      else if (!strcmp (p, "pmf-conversions"))
  -     warn_pmf2ptr = setting;
  -      else if (!strcmp (p, "effc++"))
  -     warn_ecpp = setting;
  -      else if (!strcmp (p, "sign-promo"))
  -     warn_sign_promo = setting;
  -      else if (!strcmp (p, "old-style-cast"))
  -     warn_old_style_cast = setting;
  -      else if (!strcmp (p, "overloaded-virtual"))
  -     warn_overloaded_virtual = setting;
  -      else if (!strcmp (p, "multichar"))
  -     warn_multichar = setting;
  -      /* APPLE LOCAL  -Wfour-char-constants  */
  -      else if (!strcmp (p, "four-char-constants"))
  -     warn_four_char_constants = setting;
  -      else if (!strcmp (p, "unknown-pragmas"))
  -     /* Set to greater than 1, so that even unknown pragmas in
  -        system headers will be warned about.  */  
  -     warn_unknown_pragmas = setting * 2;
  -      else if (!strcmp (p, "non-template-friend"))
  -     warn_nontemplate_friend = setting;
  -      else if (!strcmp (p, "deprecated"))
  -        warn_deprecated = setting;
  -      /* APPLE LOCAL begin AltiVec */
  -      else if (!strcmp (p, "altivec-long-deprecated"))
  -        warn_altivec_long_deprecated = setting; /* radar 2841709 */
  -      /* APPLE LOCAL end AltiVec */
  -      /* APPLE LOCAL -Wmost */
  -      else if (!strcmp (p, "all") || !strcmp (p, "most"))
  -     {
  -       warn_return_type = setting;
  -       set_Wunused (setting);
  -       warn_implicit = setting;
  -       warn_switch = setting;
  -       set_Wformat (setting);
  -       warn_parentheses = setting;
  -       warn_missing_braces = setting;
  -       warn_sign_compare = setting;
  -       warn_multichar = setting;
  -       /* APPLE LOCAL disable -Wuninitialized vs -O warning */
  -       /* Only warn about unknown pragmas that are not in system
  -          headers.  */                                        
  -       warn_unknown_pragmas = 1;       
  -
  -       /* C++-specific warnings.  */
  -       warn_ctor_dtor_privacy = setting;
  -       warn_nonvdtor = setting;
  -       warn_reorder = setting;
  -       warn_nontemplate_friend = setting;           
  -       /* APPLE LOCAL begin -Wmost dpatel */
  -       if (!strcmp (p, "most"))
  -         {
  -           warn_parentheses = 0;
  -         }
  -       /* APPLE LOCAL end -Wmost dpatel */
  -     }
  -      else return strings_processed;
  -    }
  -  else if (!strcmp (p, "-E"))
  -    flag_preprocess_only = 1;
  -  else if (!strcmp (p, "-undef"))
  -    flag_undef = 1;
  -  else if (!strcmp (p, "-ansi"))
  -    flag_no_nonansi_builtin = 1, flag_iso = 1,
  -    flag_noniso_default_format_attributes = 0, flag_no_gnu_keywords = 1;
  -#ifdef SPEW_DEBUG
  -  /* Undocumented, only ever used when you're invoking cc1plus by hand, since
  -     it's probably safe to assume no sane person would ever want to use this
  -     under normal circumstances.  */
  -  else if (!strcmp (p, "-spew-debug"))
  -    spew_debug = 1;
  -#endif
  -  else
  -    return strings_processed;
  -
  -  return 1;
  -}
  -
  -#endif
   /* Incorporate `const' and `volatile' qualifiers for member functions.
      FUNCTION is a TYPE_DECL or a FUNCTION_DECL.
      QUALS is a list of qualifiers.  Returns any explicit
  @@ -1696,8 +1284,8 @@
     if (DECL_DEFERRED_FN (fn))
       return;
     DECL_DEFERRED_FN (fn) = 1;
  -  /* APPLE LOCAL PFE */
     if (!deferred_fns)
  +    /* APPLE LOCAL PFE */
       VARRAY_TREE_INIT (deferred_fns, 32, PFE_VARRAY "deferred_fns");
   
     VARRAY_PUSH_TREE (deferred_fns, fn);
  
  
  
  1.25      +5 -5      gcc3/gcc/cp/lang-specs.h
  
  Index: lang-specs.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/lang-specs.h,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- lang-specs.h      2002/08/11 19:22:07     1.24
  +++ lang-specs.h      2002/08/26 20:08:08     1.25
  @@ -39,7 +39,7 @@
      /* Add support to invoke cpp-precomp with -precomp 
         or -cpp-precomp, and optionally with -E.  */
      "%{M|MM:cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\
  -      %{ansi:-std=c++98} %(cpp_options) %2 %(cpp_debug_options)}\
  +      %(cpp_options) %2 %(cpp_debug_options)}\
       %{E|S:%{@:%e-E and -S are not allowed with multiple -arch flags}}\
       %{E:\
          %{cpp-precomp:\
  @@ -50,7 +50,7 @@
                %{ansi:-std=c++98} %(cpp_precomp_options) %y1}\
          %{!cpp-precomp:\
            cc1plus -E %{!no-gcc:-D__GNUG__=%v1}\
  -           %{ansi:-std=c++98} %(cpp_options) %2 %(cpp_debug_options)}}\
  +           %(cpp_options) %2 %(cpp_debug_options)}}\
        %{precomp: %(cpp_precomp) -lang-c++ \
          %{!no-gcc:-D__GNUG__=%v1}\
          %{!Wno-deprecated:-D__DEPRECATED}\
  @@ -67,8 +67,8 @@
                    -D__GXX_ABI_VERSION=100\
                    %{ansi:-std=c++98}\
                    -D__cplusplus %(cpp_precomp_options) %y1 %d%g.ii \n}}}}}\
  -       %{save-temps|no-integrated-cpp:%{!cpp-precomp|fdump=*|fload=*:cpp0 -lang-c++ 
\
  -                 %{ansi:-std=c++98} %(cpp_options) %b.ii \n}}\
  +       %{save-temps|no-integrated-cpp:%{!cpp-precomp|fdump=*|fload=*:cc1plus -E 
%{!no-gcc:-D__GNUG__=%v1}\
  +                 %(cpp_options) %2 %b.ii \n}}\
          
%{save-temps|no-integrated-cpp:%{cpp-precomp:%{!fdump=*:%{!fload=*:%(cpp_precomp) 
-lang-c++ \
                    %{!no-gcc:-D__GNUG__=%v1}\
                            %{!Wno-deprecated:-D__DEPRECATED}\
  @@ -79,7 +79,7 @@
         cc1plus %{save-temps|no-integrated-cpp:%{!cpp-precomp:-fpreprocessed} 
%{cpp-precomp:-cpp-precomp} %{save-temps:%b.ii} %{!save-temps:%g.ii}}\
                 
%{!save-temps:%{!no-integrated-cpp:%{cpp-precomp:%{!fload=*:%{!fdump=*:-cpp-precomp 
%d%{save-temps:%b.ii} %{!save-temps:%g.ii}}}}}}\
                 %{!save-temps:%{!cpp-precomp|fload=*|fdump=*:%(cpp_unique_options)}}\
  -       %{ansi:-std=c++98} %(cc1_options) %2 %{+e1*}\
  +       %(cc1_options) %2 %{+e1*}\
          %{!fsyntax-only:%(invoke_as)}}}}}",
        CPLUSPLUS_CPP_SPEC},
      /* APPLE LOCAL end cpp-precomp dpatel */
  
  
  
  1.32      +3 -1      gcc3/gcc/cp/typeck.c
  
  Index: typeck.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/cp/typeck.c,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- typeck.c  2002/08/26 05:41:02     1.31
  +++ typeck.c  2002/08/26 20:08:08     1.32
  @@ -4779,7 +4779,7 @@
         /* They're pointers to objects. They must be aggregates that
            are related non-virtually. */
         base_kind kind;
  -
  +      
         if (IS_AGGR_TYPE (TREE_TYPE (type)) && IS_AGGR_TYPE (TREE_TYPE (intype))
          && lookup_base (TREE_TYPE (type), TREE_TYPE (intype),
                          ba_ignore | ba_quiet, &kind)
  @@ -5921,6 +5921,7 @@
   pfn_from_ptrmemfunc (t)
        tree t;
   {
  +#if 0 /* APPLE MERGE fix this */
     /* APPLE LOCAL begin 2.95-ptmf-compatibility  turly 20020313  */
     if (flag_apple_kext)
       {
  @@ -5939,6 +5940,7 @@
                   pfn_identifier, NULL_TREE, 0));
       }
     /* APPLE LOCAL end 2.95-ptmf-compatibility  turly 20020313  */
  +#endif
   
     if (TREE_CODE (t) == PTRMEM_CST)
       {
  
  
  
  1.5       +0 -1      gcc3/gcc/ginclude/stdarg.h
  
  Index: stdarg.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/ginclude/stdarg.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- stdarg.h  2002/08/02 10:08:46     1.4
  +++ stdarg.h  2002/08/26 20:08:10     1.5
  @@ -60,7 +60,6 @@
   #endif
   #define __va_copy(d,s)       __builtin_va_copy(d,s)
   
  -
   /* Define va_list, if desired, from __gnuc_va_list. */
   /* We deliberately do not define va_list when called from
      stdio.h, because ANSI C says that stdio.h is not supposed to define
  
  
  
  1.12      +1 -3      gcc3/gcc/ginclude/stddef.h
  
  Index: stddef.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/ginclude/stddef.h,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- stddef.h  2002/08/26 05:41:20     1.11
  +++ stddef.h  2002/08/26 20:08:10     1.12
  @@ -83,9 +83,7 @@
   #undef _SIZE_T_
   #undef _BSD_SIZE_T_
   #endif
  -
  -/* APPLE LOCAL patch (?) that need to be looked at in more detail */
  -#if defined (__need_wchar_t) //|| defined (_STDDEF_H_)
  +#if defined (__need_wchar_t) || defined (_STDDEF_H_)
   #undef _WCHAR_T_
   #undef _BSD_WCHAR_T_
   #endif
  
  
  
  1.5       +1 -1      gcc3/gcc/ginclude/varargs.h
  
  Index: varargs.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/ginclude/varargs.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- varargs.h 2002/08/02 10:08:47     1.4
  +++ varargs.h 2002/08/26 20:08:10     1.5
  @@ -10,6 +10,6 @@
   #error "GCC no longer implements <varargs.h>."
   #error "Revise your code to use <stdarg.h>."
   
  -#endif /* _VARARGS_H */
  +#endif
   /* APPLE LOCAL MW compatibility */
   #endif /* __MWERKS__ */
  
  
  
  1.25      +3 -3      gcc3/gcc/objc/lang-specs.h
  
  Index: lang-specs.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/objc/lang-specs.h,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- lang-specs.h      2002/08/11 19:22:08     1.24
  +++ lang-specs.h      2002/08/26 20:08:10     1.25
  @@ -28,11 +28,11 @@
        /* APPLE LOCAL begin cpp-precomp dpatel */
        /* Add support to invoke cpp-precomp with -precomp or -cpp-precomp or -E.
        Do not invoke cpp-precomp when -no-cpp-precomp is specified */
  -     "%{M|MM:%(trad_capable_cpp) -lang-objc %{ansi:-std=c89} %(cpp_options) 
%(cpp_debug_options)}\
  +     "%{M|MM:%(trad_capable_cpp) %(cpp_options) %(cpp_debug_options)}\
         %{E|S:%{@:%e-E and -S are not allowed with multiple -arch flags}}\
         %{E:\
          %{traditional-cpp|no-cpp-precomp:\
  -         %(trad_capable_cpp) -lang-objc %{ansi:-std=c89} %(cpp_options) 
%(cpp_debug_options)}\
  +         %(trad_capable_cpp) %(cpp_options) %(cpp_debug_options)}\
          %{!traditional-cpp:%{!no-cpp-precomp:\
            %(cpp_precomp) -lang-objc -D__OBJC__ %{ansi:-std=c89} 
%(cpp_precomp_options) %y0}}}\
         %{!E:%{!M:%{!MM:\
  @@ -60,7 +60,7 @@
                     %{precomp:%{@:-o %f%u.p}%{!@:%W{o}%W{!o*:-o %b-gcc3.p}}} }\
            %{!traditional:%{!ftraditional:%{!traditional-cpp:\
                %{fload=*|fdump=*|no-cpp-precomp:%{!precomp:\
  -                 cc1obj %{ansi:-std=c89} %(cpp_unique_options) %(cc1_options) 
%{gen-decls}}}}}}}}\
  +                 cc1obj %(cpp_unique_options) %(cc1_options) %{gen-decls}}}}}}}}\
           %{!fsyntax-only:%{!precomp:%(invoke_as)}}}}}", 0},
      /* APPLE LOCAL end cpp-precomp dpatel */
     {".mi", "@objc-cpp-output", 0},
  
  
  
  1.110     +16 -76    gcc3/gcc/objc/objc-act.c
  
  Index: objc-act.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/objc/objc-act.c,v
  retrieving revision 1.109
  retrieving revision 1.110
  diff -u -r1.109 -r1.110
  --- objc-act.c        2002/08/26 05:41:28     1.109
  +++ objc-act.c        2002/08/26 20:08:10     1.110
  @@ -167,8 +167,6 @@
   static void generate_strings                 PARAMS ((void));
   static tree get_proto_encoding                       PARAMS ((tree));
   static void build_selector_translation_table PARAMS ((void));
  -/* APPLE LOCAL Objective-C++ */
  -/* 'build_ivar_chain' is now extern.  */
   
   static tree objc_add_static_instance         PARAMS ((tree, tree));
   
  @@ -374,9 +372,6 @@
   
   #define PROTOCOL_OBJECT_CLASS_NAME "Protocol"
   
  -/* APPLE LOCAL constant strings */   
  -const char *constant_string_class_name = NULL;
  -
   static const char *TAG_GETCLASS;
   static const char *TAG_GETMETACLASS;
   static const char *TAG_MSGSEND;
  @@ -594,53 +589,6 @@
     c_objc_common_finish_file ();
   #endif    
   }
  -
  -#if 0 /* APPLE MERGE move all the local changes */
  -int
  -objc_decode_option (argc, argv)
  -     int argc;
  -     char **argv;
  -{
  -  const char *p = argv[0];
  -
  -  if (!strcmp (p, "-gen-decls"))
  -    flag_gen_declaration = 1;
  -  else if (!strcmp (p, "-Wselector"))
  -    warn_selector = 1;
  -  else if (!strcmp (p, "-Wno-selector"))
  -    warn_selector = 0;
  -  else if (!strcmp (p, "-Wprotocol"))
  -    warn_protocol = 1;
  -  else if (!strcmp (p, "-Wno-protocol"))
  -    warn_protocol = 0;
  -  else if (!strcmp (p, "-fgnu-runtime"))
  -    flag_next_runtime = 0;
  -  else if (!strcmp (p, "-fno-next-runtime"))
  -    flag_next_runtime = 0;
  -  else if (!strcmp (p, "-fno-gnu-runtime"))
  -    flag_next_runtime = 1;
  -  else if (!strcmp (p, "-fnext-runtime"))
  -    flag_next_runtime = 1;
  -  else if (!strcmp (p, "-print-objc-runtime-info"))
  -    print_struct_values = 1;
  -#define CSTSTRCLASS "-fconstant-string-class="
  -  else if (!strncmp (p, CSTSTRCLASS, sizeof(CSTSTRCLASS) - 2)) {
  -    if (strlen (argv[0]) <= strlen (CSTSTRCLASS))
  -      error ("no class name specified as argument to -fconstant-string-class");
  -    constant_string_class_name = xstrdup(argv[0] + sizeof(CSTSTRCLASS) - 1);
  -  }
  -#undef CSTSTRCLASS
  -  else
  -    /* APPLE LOCAL Objective-C++ */
  -#ifdef OBJCPLUS
  -    return cxx_decode_option (argc, argv);
  -#else    
  -    return c_decode_option (argc, argv);
  -#endif
  -
  -  return 1;
  -}
  -#endif
   
   static tree
   define_decl (declarator, declspecs)
  @@ -2692,7 +2640,6 @@
   get_class_ivars (interface)
        tree interface;
   {
  -/* APPLE LOCAL end bitfield alignment */
     tree my_name, super_name, ivar_chain;
   
     my_name = CLASS_NAME (interface);
  @@ -2737,6 +2684,14 @@
          ivar_chain = head;
           }
       }
  +#ifdef OBJCPLUS       
  +  {
  +    tree ivar = ivar_chain;
  +    /* finish_member_declaration takes only one decl at a time */
  +    for (; ivar; ivar = TREE_CHAIN (ivar))
  +      finish_member_declaration (copy_node (ivar));
  +  }
  +#endif      
     return ivar_chain;
   }
   
  @@ -6194,34 +6149,19 @@
     return 1;
   }
   
  -#if 0 /* APPLE MERGE need local change? */
  +/* APPLE LOCAL begin Objective-C++ */
   /* Implement @defs (<classname>) within struct bodies.  */
  -
   tree
  -get_class_ivars (class_name)
  +objcp_get_class_ivars (class_name)
        tree class_name;
   {
  -    /* APPLE LOCAL begin Objective-C++ */
  -    tree interface = lookup_interface (class_name);
  -    if (interface) {
  -      tree ivar = build_ivar_chain (interface); 
  -#ifdef OBJCPLUS       
  -      /* finish_member_declaration takes only one decl at a time */
  -      for (; ivar; ivar = TREE_CHAIN (ivar)) {
  -        finish_member_declaration (copy_node (ivar));
  -      } 
  -#endif      
  -      return ivar; 
  -    }  
  -    else
  -      {
  -        error ("Cannot find interface declaration for `%s'",
  -                     IDENTIFIER_POINTER (class_name));
  -     return NULL_TREE;  
  -      }
  -    /* APPLE LOCAL end Objective-C++ */
  +  tree interface = lookup_interface (class_name);
  +  if (interface)
  +    return get_class_ivars (interface);
  +  else
  +    return NULL;
   }
  -#endif
  +/* APPLE LOCAL end Objective-C++ */
   
   /* Make sure all entries in CHAIN are also in LIST.  */
   
  
  
  
  1.21      +0 -6      gcc3/gcc/objc/objc-lang.c
  
  Index: objc-lang.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/objc/objc-lang.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- objc-lang.c       2002/08/26 05:41:28     1.20
  +++ objc-lang.c       2002/08/26 20:08:11     1.21
  @@ -22,13 +22,7 @@
   #include "config.h"
   #include "system.h"
   #include "tree.h"
  -/* APPLE LOCAL begin Objective-C++ */
  -#ifdef OBJCPLUS
  -#include "cp-tree.h"
  -#else
   #include "c-tree.h"
  -#endif
  -/* APPLE LOCAL end Objective-C++ */
   #include "c-common.h"
   #include "toplev.h"
   #include "objc-act.h"
  
  
  
  1.13      +4 -4      gcc3/gcc/objcp/lang-specs.h
  
  Index: lang-specs.h
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/objcp/lang-specs.h,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- lang-specs.h      2002/08/11 19:22:08     1.12
  +++ lang-specs.h      2002/08/26 20:08:12     1.13
  @@ -36,7 +36,7 @@
      /* Add support to invoke cpp-precomp with -precomp 
         or -cpp-precomp, and optionally with -E.  */
       "%{M|MM:cc1objplus -E %{!no-gcc:-D__GNUG__=%v1}\
  -       %{ansi:-std=c++98} %(cpp_options) %2 %(cpp_debug_options)}\
  +       %(cpp_options) %2 %(cpp_debug_options)}\
         %{E|S:%{@:%e-E and -S are not allowed with multiple -arch flags}}\
         %{E:\
          %{cpp-precomp:\
  @@ -47,7 +47,7 @@
                %{ansi:-std=c++98} %(cpp_precomp_options) %y1}\
          %{!cpp-precomp:\
            cc1objplus -E %{!no-gcc:-D__GNUG__=%v1}\
  -           %{ansi:-std=c++98} %(cpp_options) %2 %(cpp_debug_options)}}\
  +           %(cpp_options) %2 %(cpp_debug_options)}}\
        %{precomp: %(cpp_precomp) -lang-objc++ \
          %{!no-gcc:-D__GNUG__=%v1}\
          %{!Wno-deprecated:-D__DEPRECATED}\
  @@ -64,7 +64,7 @@
                    %{ansi:-std=c++98}\
                    -D__OBJC__ -D__cplusplus %(cpp_precomp_options) %y1 %d%g.mii 
\n}}}}}\
          %{save-temps|no-integrated-cpp:%{!cpp-precomp|fdump=*|fload=*:cc1objplus -E \
  -                 %{ansi:-std=c++98} %(cpp_options) %2 %b.mii \n}}\
  +                 %(cpp_options) %2 %b.mii \n}}\
          
%{save-temps|no-integrated-cpp:%{cpp-precomp:%{!fdump=*:%{!fload=*:%(cpp_precomp) 
-lang-objc++ \
                    %{!no-gcc:-D__GNUG__=%v1}\
                            %{!Wno-deprecated:-D__DEPRECATED}\
  @@ -74,7 +74,7 @@
         cc1objplus %{save-temps|no-integrated-cpp:%{!cpp-precomp:-fpreprocessed} 
%{cpp-precomp:-cpp-precomp} %b.mii}\
                 %{cpp-precomp:%{!fload=*:%{!fdump=*:-cpp-precomp %d%b.mii}}}\
                 
%{!save-temps:%{!no-integrated-cpp:%{!cpp-precomp|fload=*|fdump=*:%(cpp_unique_options)
 %{!no-gcc:-D__GNUG__=%v1}}}}\
  -       %{ansi:-std=c++98} %(cc1_options) %{gen-decls} %2 %{+e1*}\
  +       %(cc1_options) %{gen-decls} %2 %{+e1*}\
          %{!fsyntax-only:%(invoke_as)}}}}}",
        OBJCPLUSPLUS_CPP_SPEC},
      /* APPLE LOCAL end cpp-precomp dpatel */
  
  
  
  1.14      +2 -1      gcc3/gcc/objcp/objcp-decl.c
  
  Index: objcp-decl.c
  ===================================================================
  RCS file: /cvs/Darwin/gcc3/gcc/objcp/objcp-decl.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- objcp-decl.c      2002/08/17 06:29:14     1.13
  +++ objcp-decl.c      2002/08/26 20:08:12     1.14
  @@ -224,7 +224,8 @@
   objcp_build_component_ref (datum, component) 
        tree datum, component;
   {
  -  return build_component_ref (datum, component, NULL_TREE, 1);
  +  /* APPLE MERGE fix this */
  +  return NULL /*build_component_ref (datum, component, NULL_TREE, 1)*/;
   }  
   
   int
  
  
  


Reply via email to