[6/6] Preprocessor forced macro location
authorNathan Sidwell <nathan@acm.org>
Wed, 31 Oct 2018 15:26:28 +0000 (15:26 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Wed, 31 Oct 2018 15:26:28 +0000 (15:26 +0000)
https://gcc.gnu.org/ml/gcc-patches/2018-10/msg02044.html
libcpp/
* internal.h (struct cpp_reader): Rename forced_token_location_p
to forced_token_location and drop its pointerness.
* include/cpplib.h (cpp_force_token_locations): Take location, not
pointer to one.
* init.c (cpp_create_reader): Adjust.
* lex.c (cpp_read_main_file):

gcc/c-family/
* c-opts.c (c_finish_options): Adjust cpp_force_token_locations call.

gcc/fortran/
* cpp.c (gfc_cpp_init): Adjust cpp_force_token_locations call.

From-SVN: r265692

gcc/c-family/ChangeLog
gcc/c-family/c-opts.c
gcc/fortran/ChangeLog
gcc/fortran/cpp.c
libcpp/ChangeLog
libcpp/include/cpplib.h
libcpp/init.c
libcpp/internal.h
libcpp/lex.c

index 5b9658256200c5b54e5be8a06ac0a2c678410b56..290e3fac8017fa3a36241c7980b8e0e5f964d34a 100644 (file)
@@ -1,3 +1,7 @@
+2018-10-31  Nathan Sidwell  <nathan@acm.org>
+
+       * c-opts.c (c_finish_options): Adjust cpp_force_token_locations call.
+
 2018-10-30  Martin Sebor  <msebor@redhat.com>
 
        PR middle-end/87041
index 9cf1900fb9ab94540e2c03c39a44413ac79b6d54..4592682d58725260c0668d119451c61d0b2bef17 100644 (file)
@@ -1396,8 +1396,7 @@ c_finish_options (void)
                                                           0)));
       /* Make sure all of the builtins about to be declared have
         BUILTINS_LOCATION has their source_location.  */
-      source_location builtins_loc = BUILTINS_LOCATION;
-      cpp_force_token_locations (parse_in, &builtins_loc);
+      cpp_force_token_locations (parse_in, BUILTINS_LOCATION);
 
       cpp_init_builtins (parse_in, flag_hosted);
       c_cpp_builtins (parse_in);
index e6e350d8bd16fed49c69c223587897cd7b2d0476..a773bbd21fec2fdecfffe5505bde7223d1770190 100644 (file)
@@ -1,3 +1,7 @@
+2018-10-31  Nathan Sidwell  <nathan@acm.org>
+
+       * cpp.c (gfc_cpp_init): Adjust cpp_force_token_locations call.
+
 2018-10-31  Martin Liska  <mliska@suse.cz>
 
        * trans-decl.c (struct module_hasher): Call htab_hash_string
index 3091eeb17f4d126f6db07bd18e288f539fd04dd6..a28421f81614315e669ca8554f10dd7ba125133d 100644 (file)
@@ -579,8 +579,7 @@ gfc_cpp_init (void)
     {
       /* Make sure all of the builtins about to be declared have
        BUILTINS_LOCATION has their source_location.  */
-      source_location builtins_loc = BUILTINS_LOCATION;
-      cpp_force_token_locations (cpp_in, &builtins_loc);
+      cpp_force_token_locations (cpp_in, BUILTINS_LOCATION);
 
       cpp_define_builtins (cpp_in);
 
index c5a0285b57f174eeb4a540fcdcea2db2e1a0cef2..3e98732ceb189e3fe495ce53b7f194bc9b5500ea 100644 (file)
@@ -1,5 +1,12 @@
 2018-10-31  Nathan Sidwell  <nathan@acm.org>
 
+       * internal.h (struct cpp_reader): Rename forced_token_location_p
+       to forced_token_location and drop its pointerness.
+       * include/cpplib.h (cpp_force_token_locations): Take location, not
+       pointer to one.
+       * init.c (cpp_create_reader): Adjust.
+       * lex.c (cpp_read_main_file): 
+
        * directives.c (do_include_common): Commonize cleanup path.
        (_cpp_pop_buffer): Fix leak.
 
index a2dab5237dd07c450ce7778d09bbb0e1451ee122..aad836d2192ddb464680e7565322619e89b48da6 100644 (file)
@@ -1281,7 +1281,7 @@ extern int cpp_read_state (cpp_reader *, const char *, FILE *,
                           struct save_macro_data *);
 
 /* In lex.c */
-extern void cpp_force_token_locations (cpp_reader *, source_location *);
+extern void cpp_force_token_locations (cpp_reader *, source_location);
 extern void cpp_stop_forcing_token_locations (cpp_reader *);
 
 /* In expr.c */
index 9b7490b0d8a8d71675232c3fb92b65c1cced9662..43c07fc850bcbf05fc30d30948eeed148a95e30f 100644 (file)
@@ -264,7 +264,7 @@ cpp_create_reader (enum c_lang lang, cpp_hash_table *table,
   pfile->pushed_macros = 0;
 
   /* Do not force token locations by default.  */
-  pfile->forced_token_location_p = NULL;
+  pfile->forced_token_location = 0;
 
   /* Initialize source_date_epoch to -2 (not yet set).  */
   pfile->source_date_epoch = (time_t) -2;
index 59f830c6a8e5753335de87ca2eb2e3715d13b03f..98fefeb9e83abbc5906fb24abdda1f58d126fd35 100644 (file)
@@ -570,9 +570,9 @@ struct cpp_reader
   /* List of saved macros by push_macro.  */
   struct def_pragma_macro *pushed_macros;
 
-  /* If non-null, the lexer will use this location for the next token
+  /* If non-zero, the lexer will use this location for the next token
      instead of getting a location from the linemap.  */
-  source_location *forced_token_location_p;
+  source_location forced_token_location;
 };
 
 /* Character classes.  Based on the more primitive macros in safe-ctype.h.
index 892cfc4494de592df4e1ade5d0cf4c02ee345b01..c6e34b33343f9666ec5526797a44096de4324ab4 100644 (file)
@@ -2757,8 +2757,8 @@ _cpp_lex_direct (cpp_reader *pfile)
     }
   c = *buffer->cur++;
 
-  if (pfile->forced_token_location_p)
-    result->src_loc = *pfile->forced_token_location_p;
+  if (pfile->forced_token_location)
+    result->src_loc = pfile->forced_token_location;
   else
     result->src_loc = linemap_position_for_column (pfile->line_table,
                                          CPP_BUF_COLUMN (buffer, buffer->cur));
@@ -3773,14 +3773,14 @@ cpp_token_val_index (const cpp_token *tok)
     }
 }
 
-/* All tokens lexed in R after calling this function will be forced to have
-   their source_location the same as the location referenced by P, until
+/* All tokens lexed in R after calling this function will be forced to
+   have their source_location to be P, until
    cpp_stop_forcing_token_locations is called for R.  */
 
 void
-cpp_force_token_locations (cpp_reader *r, source_location *p)
+cpp_force_token_locations (cpp_reader *r, source_location loc)
 {
-  r->forced_token_location_p = p;
+  r->forced_token_location = loc;
 }
 
 /* Go back to assigning locations naturally for lexed tokens.  */
@@ -3788,5 +3788,5 @@ cpp_force_token_locations (cpp_reader *r, source_location *p)
 void
 cpp_stop_forcing_token_locations (cpp_reader *r)
 {
-  r->forced_token_location_p = NULL;
+  r->forced_token_location = 0;
 }