]> gcc.gnu.org Git - gcc.git/commitdiff
c-common.c (STDC_0_IN_SYSTEM_HEADERS, [...]): Move to c-copts.c.
authorNeil Booth <neil@daikokuya.co.uk>
Mon, 12 Aug 2002 06:02:53 +0000 (06:02 +0000)
committerNeil Booth <neil@gcc.gnu.org>
Mon, 12 Aug 2002 06:02:53 +0000 (06:02 +0000)
* c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
to c-copts.c.
(warn_multichar): Die.
(cb_register_builtins): Export.
* c-common.h (warn_multichar, preprocess_file): Remove.
(cb_register_builtins): New.
* c-lang.c (c_init): Remove.
(LANG_HOOKS_INIT): Use c_objc_common_init.
* c-lex.c (init_c_lex): Don't canonicalize filename.
* c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New.
(preprocess_file): Make static.  Update for cpplib.
(c_common_decode_option): Remove warn_multichar.  Use in_fname.
(c_common_post_options): Set some cpp options here.
(c_common_init): Move from c-common.c.
* cppinit.c (cpp_post_options): Don't canonicalize in_fname.
* cpplib.h (struct cpp_options): Remove in_fname.
(cpp_preprocess_file): Update.
* cppmain.c (cpp_preprocess_file): Update for new prototypes.

From-SVN: r56223

gcc/ChangeLog
gcc/c-common.c
gcc/c-common.h
gcc/c-lang.c
gcc/c-lex.c
gcc/c-opts.c
gcc/cppinit.c
gcc/cpplib.h
gcc/cppmain.c

index ca7c3d07a01f775b9bbe8db300f5178dba312345..e5ec9300449d6b247398c1b948df6d8a7189cac1 100644 (file)
@@ -1,3 +1,24 @@
+2002-08-12  Neil Booth  <neil@daikokuya.co.uk>
+
+       * c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
+       to c-copts.c.
+       (warn_multichar): Die.
+       (cb_register_builtins): Export.
+       * c-common.h (warn_multichar, preprocess_file): Remove.
+       (cb_register_builtins): New.
+       * c-lang.c (c_init): Remove.
+       (LANG_HOOKS_INIT): Use c_objc_common_init.
+       * c-lex.c (init_c_lex): Don't canonicalize filename.
+       * c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New.
+       (preprocess_file): Make static.  Update for cpplib.
+       (c_common_decode_option): Remove warn_multichar.  Use in_fname.
+       (c_common_post_options): Set some cpp options here.
+       (c_common_init): Move from c-common.c.
+       * cppinit.c (cpp_post_options): Don't canonicalize in_fname.
+       * cpplib.h (struct cpp_options): Remove in_fname.
+       (cpp_preprocess_file): Update.
+       * cppmain.c (cpp_preprocess_file): Update for new prototypes.
+
 2002-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * config.gcc (mips*-*-netbsd*): Include ${tm_file}.
index d925e9174824a8841291e00921ccaa4a92398c8e..2268d72c754d816fef94cc66a1677af587218d6a 100644 (file)
@@ -83,10 +83,6 @@ cpp_reader *parse_in;                /* Declared in c-pragma.h.  */
                        : "long long unsigned int"))
 #endif
 
-#ifndef STDC_0_IN_SYSTEM_HEADERS
-#define STDC_0_IN_SYSTEM_HEADERS 0
-#endif
-
 #ifndef REGISTER_PREFIX
 #define REGISTER_PREFIX ""
 #endif
@@ -310,10 +306,6 @@ int warn_conversion;
 
 int warn_unknown_pragmas; /* Tri state variable.  */  
 
-/* Nonzero means warn about use of multicharacter literals.  */
-
-int warn_multichar = 1;
-
 /* Warn about format/argument anomalies in calls to formatted I/O functions
    (*printf, *scanf, strftime, strfmon, etc.).  */
 
@@ -692,8 +684,6 @@ static int if_stack_space = 0;
 /* Stack pointer.  */
 static int if_stack_pointer = 0;
 
-static void cb_register_builtins PARAMS ((cpp_reader *));
-
 static tree handle_packed_attribute    PARAMS ((tree *, tree, tree, int,
                                                 bool *));
 static tree handle_nocommon_attribute  PARAMS ((tree *, tree, tree, int,
@@ -4672,7 +4662,7 @@ boolean_increment (code, arg)
 }
 \f
 /* Hook that registers front end and target-specific built-ins.  */
-static void
+void
 cb_register_builtins (pfile)
      cpp_reader *pfile;
 {
@@ -4884,52 +4874,6 @@ builtin_define_type_max (macro, type, is_long)
   cpp_define (parse_in, buf);
 }
 
-/* Front end initialization common to C, ObjC and C++.  */
-const char *
-c_common_init (filename)
-     const char *filename;
-{
-  cpp_options *options = cpp_get_options (parse_in);
-
-  /* Set up preprocessor arithmetic.  Must be done after call to
-     c_common_nodes_and_builtins for wchar_type_node to be good.  */
-  options->precision = TYPE_PRECISION (intmax_type_node);
-  options->char_precision = TYPE_PRECISION (char_type_node);
-  options->int_precision = TYPE_PRECISION (integer_type_node);
-  options->wchar_precision = TYPE_PRECISION (wchar_type_node);
-  options->unsigned_wchar = TREE_UNSIGNED (wchar_type_node);
-  options->unsigned_char = !flag_signed_char;
-  options->warn_multichar = warn_multichar;
-  options->stdc_0_in_system_headers = STDC_0_IN_SYSTEM_HEADERS;
-
-  /* We want -Wno-long-long to override -pedantic -std=non-c99
-     and/or -Wtraditional, whatever the ordering.  */
-  options->warn_long_long
-    = warn_long_long && ((!flag_isoc99 && pedantic) || warn_traditional);
-
-  /* Register preprocessor built-ins before calls to
-     cpp_main_file.  */
-  cpp_get_callbacks (parse_in)->register_builtins = cb_register_builtins;
-
-  /* NULL is passed up to toplev.c and we exit quickly.  */
-  if (flag_preprocess_only)
-    {
-      preprocess_file ();
-      return NULL;
-    }
-
-  /* Do this before initializing pragmas, as then cpplib's hash table
-     has been set up.  */
-  filename = init_c_lex (filename);
-
-  init_pragma ();
-
-  if (!c_attrs_initialized)
-    c_init_attributes ();
-
-  return filename;
-}
-
 static void
 c_init_attributes ()
 {
index ce3860820fb52e8d91cdafc7296a1802fd9fa6e6..8cdbbcee42a9329b16982fceeef8043ba74069ff 100644 (file)
@@ -481,10 +481,6 @@ extern int warn_conversion;
 
 extern int warn_unknown_pragmas; /* Tri state variable.  */  
 
-/* Nonzero means warn about use of multicharacter literals.  */
-
-extern int warn_multichar;
-
 /* Warn about format/argument anomalies in calls to formatted I/O functions
    (*printf, *scanf, strftime, strfmon, etc.).  */
 
@@ -1209,7 +1205,7 @@ extern int c_common_unsafe_for_reeval             PARAMS ((tree));
 
 extern const char *init_c_lex                  PARAMS ((const char *));
 
-extern void preprocess_file                    PARAMS ((void));
+extern void cb_register_builtins               PARAMS ((cpp_reader *));
 
 /* Information recorded about each file examined during compilation.  */
 
index 7d256ababe85025219870404520d2b31be73fa38..b6f8a7c99fc55ae0c968787e50dbe2f08b63d973 100644 (file)
@@ -29,7 +29,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "langhooks.h"
 #include "langhooks-def.h"
 
-static const char *c_init PARAMS ((const char *));
 static void c_init_options PARAMS ((void));
 
 /* ### When changing hooks, consider if ObjC needs changing too!! ### */
@@ -37,7 +36,7 @@ static void c_init_options PARAMS ((void));
 #undef LANG_HOOKS_NAME
 #define LANG_HOOKS_NAME "GNU C"
 #undef LANG_HOOKS_INIT
-#define LANG_HOOKS_INIT c_init
+#define LANG_HOOKS_INIT c_objc_common_init
 #undef LANG_HOOKS_FINISH
 #define LANG_HOOKS_FINISH c_common_finish
 #undef LANG_HOOKS_INIT_OPTIONS
@@ -159,13 +158,6 @@ c_init_options ()
   c_common_init_options (clk_c);
 }
 
-static const char *
-c_init (filename)
-     const char *filename;
-{
-  return c_objc_common_init (filename);
-}
-
 /* Used by c-lex.c, but only for objc.  */
 
 tree
index b4cc301deb17e5e26d3ec82ed284bfa3430c3bca..1805ccbed0317722118bf9a597d5b6e4211aec82 100644 (file)
@@ -135,9 +135,6 @@ init_c_lex (filename)
   /* Start it at 0.  */
   lineno = 0;
 
-  if (filename == NULL || !strcmp (filename, "-"))
-    filename = "";
-
   return cpp_read_main_file (parse_in, filename, ident_hash);
 }
 
index e2c1bb82314a6282f52a47f6ae5141baf14be539..4f6bb5db817f6dd12d428986c96f06dbc0949784 100644 (file)
@@ -33,6 +33,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 static cpp_options *cpp_opts;
 
+/* Input filename.  */
+static const char *in_fname;
+
 /* Filename and stream for preprocessed output.  */
 static const char *out_fname;
 static FILE *out_stream;
@@ -51,6 +54,11 @@ static void set_std_cxx98 PARAMS ((int));
 static void set_std_c89 PARAMS ((int, int));
 static void set_std_c99 PARAMS ((int));
 static void check_deps_environment_vars PARAMS ((void));
+static void preprocess_file PARAMS ((void));
+
+#ifndef STDC_0_IN_SYSTEM_HEADERS
+#define STDC_0_IN_SYSTEM_HEADERS 0
+#endif
 
 #define CL_C_ONLY      (1 << 0) /* Only C.  */
 #define CL_OBJC_ONLY   (1 << 1) /* Only ObjC.  */
@@ -462,8 +470,8 @@ c_common_decode_option (argc, argv)
   /* Interpret "-" or a non-switch as a file name.  */
   if (opt[0] != '-' || opt[1] == '\0')
     {
-      if (!cpp_opts->in_fname)
-       cpp_opts->in_fname = opt;
+      if (!in_fname)
+       in_fname = opt;
       else if (!out_fname)
        out_fname = opt;
       else
@@ -565,7 +573,6 @@ c_common_decode_option (argc, argv)
       set_Wimplicit (on);
       warn_char_subscripts = on;
       warn_missing_braces = on;
-      warn_multichar = on;     /* Was C++ only.  */
       warn_parentheses = on;
       warn_return_type = on;
       warn_sequence_point = on;        /* Was C only.  */
@@ -598,6 +605,7 @@ c_common_decode_option (argc, argv)
       cpp_opts->warn_trigraphs = on;
       cpp_opts->warn_comments = on;
       cpp_opts->warn_num_sign_change = on;
+      cpp_opts->warn_multichar = on;   /* Was C++ only.  */
       break;
 
     case OPT_Wbad_function_cast:
@@ -728,7 +736,7 @@ c_common_decode_option (argc, argv)
       break;
 
     case OPT_Wmultichar:
-      warn_multichar = on;
+      cpp_opts->warn_multichar = on;
       break;
 
     case OPT_Wnested_externs:
@@ -1204,7 +1212,10 @@ c_common_decode_option (argc, argv)
 bool
 c_common_post_options ()
 {
-  /* Canonicalize the output filename.  */
+  /* Canonicalize the input and output filenames.  */
+  if (in_fname == NULL || !strcmp (in_fname, "-"))
+    in_fname = "";
+
   if (out_fname == NULL || !strcmp (out_fname, "-"))
     out_fname = "";
 
@@ -1221,6 +1232,14 @@ c_common_post_options ()
 
   cpp_post_options (parse_in);
 
+  cpp_opts->unsigned_char = !flag_signed_char;
+  cpp_opts->stdc_0_in_system_headers = STDC_0_IN_SYSTEM_HEADERS;
+
+  /* We want -Wno-long-long to override -pedantic -std=non-c99
+     and/or -Wtraditional, whatever the ordering.  */
+  cpp_opts->warn_long_long
+    = warn_long_long && ((!flag_isoc99 && pedantic) || warn_traditional);
+
   flag_inline_trees = 1;
 
   /* Use tree inlining if possible.  Function instrumentation is only
@@ -1263,7 +1282,7 @@ c_common_post_options ()
 }
 
 /* Preprocess the input file to out_stream.  */
-void
+static void
 preprocess_file ()
 {
   /* Open the output now.  We must do so even if no_output is on,
@@ -1277,7 +1296,41 @@ preprocess_file ()
   if (out_stream == NULL)
     fatal_io_error ("opening output file %s", out_fname);
   else
-    cpp_preprocess_file (parse_in, out_stream);
+    cpp_preprocess_file (parse_in, in_fname, out_stream);
+}
+
+/* Front end initialization common to C, ObjC and C++.  */
+const char *
+c_common_init (filename)
+     const char *filename;
+{
+  /* Set up preprocessor arithmetic.  Must be done after call to
+     c_common_nodes_and_builtins for type nodes to be good.  */
+  cpp_opts->precision = TYPE_PRECISION (intmax_type_node);
+  cpp_opts->char_precision = TYPE_PRECISION (char_type_node);
+  cpp_opts->int_precision = TYPE_PRECISION (integer_type_node);
+  cpp_opts->wchar_precision = TYPE_PRECISION (wchar_type_node);
+  cpp_opts->unsigned_wchar = TREE_UNSIGNED (wchar_type_node);
+
+  /* Register preprocessor built-ins before calls to
+     cpp_main_file.  */
+  cpp_get_callbacks (parse_in)->register_builtins = cb_register_builtins;
+
+  /* NULL is passed up to toplev.c and we exit quickly.  */
+  if (flag_preprocess_only)
+    {
+      preprocess_file ();
+      return NULL;
+    }
+
+  /* Do this before initializing pragmas, as then cpplib's hash table
+     has been set up.  NOTE: we are using our own file name here, not
+     the one supplied.  */
+  filename = init_c_lex (in_fname);
+
+  init_pragma ();
+
+  return filename;
 }
 
 /* Common finish hook for the C, ObjC and C++ front ends.  */
index 977629acbe1cfade788d57b32c32c0900327a703..2792ebfb672d4a9837a55eab92f87bc901320b8b 100644 (file)
@@ -1452,12 +1452,6 @@ void
 cpp_post_options (pfile)
      cpp_reader *pfile;
 {
-  /* Canonicalize in_fname and out_fname.  We guarantee they are not
-     NULL, and that the empty string represents stdin / stdout.  */
-  if (CPP_OPTION (pfile, in_fname) == NULL
-      || !strcmp (CPP_OPTION (pfile, in_fname), "-"))
-    CPP_OPTION (pfile, in_fname) = "";
-
   /* -Wtraditional is not useful in C++ mode.  */
   if (CPP_OPTION (pfile, cplusplus))
     CPP_OPTION (pfile, warn_traditional) = 0;
index b6a75cf42797e223550705ad3a2d8ae834364b3e..7df6ce274812296f5121e6b2f0259aa399e117ec 100644 (file)
@@ -221,9 +221,6 @@ enum { dump_none = 0, dump_only, dump_names, dump_definitions };
    carries all the options visible to the command line.  */
 struct cpp_options
 {
-  /* Name of input and output files.  */
-  const char *in_fname;
-
   /* Characters between tab stops.  */
   unsigned int tabstop;
 
@@ -726,7 +723,7 @@ extern int cpp_included     PARAMS ((cpp_reader *, const char *));
 extern void cpp_make_system_header PARAMS ((cpp_reader *, int, int));
 
 /* In cppmain.c */
-extern void cpp_preprocess_file PARAMS ((cpp_reader *, FILE *));
+extern void cpp_preprocess_file PARAMS ((cpp_reader *, const char *, FILE *));
 
 #ifdef __cplusplus
 }
index adde66c1ad4a701f4514f635bf9a4d43780e4213..5efafd5cad9516ee250c37a51b01805b24b79e3e 100644 (file)
@@ -67,8 +67,9 @@ static struct printer print;
 
 /* Preprocess and output.  */
 void
-cpp_preprocess_file (pfile, out_stream)
+cpp_preprocess_file (pfile, in_fname, out_stream)
      cpp_reader *pfile;
+     const char *in_fname;
      FILE *out_stream;
 {
   options = cpp_get_options (pfile);
@@ -84,7 +85,7 @@ cpp_preprocess_file (pfile, out_stream)
 
   setup_callbacks (pfile);
 
-  if (cpp_read_main_file (pfile, options->in_fname, NULL))
+  if (cpp_read_main_file (pfile, in_fname, NULL))
     {
       cpp_finish_options (pfile);
 
This page took 0.124578 seconds and 5 git commands to generate.