cpp crash with gcc-2.95.2 and cpplib

Neil Booth neil@daikokuya.demon.co.uk
Tue Dec 12 12:12:00 GMT 2000


Niels Möller wrote:-

> should help. But perhaps it's better to change read_name_map to return
> NULL on error?

Yes, that looks like it.  Could you try this patch?  If it works for
you, I'll commit it.

Neil.

	* cppfiles.c (read_name_map): Return NULL on open error.
	(remap_filename): Update.	

Index: cppfiles.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cppfiles.c,v
retrieving revision 1.92
diff -u -p -r1.92 cppfiles.c
--- cppfiles.c	2000/12/11 07:45:15	1.92
+++ cppfiles.c	2000/12/12 20:10:23
@@ -875,9 +875,9 @@ read_name_map (pfile, dirname)
     strcat (name, "/");
   strcat (name, FILE_NAME_MAP_FILE);
   f = fopen (name, "r");
-  if (!f)
-    map_list_ptr->map_list_map = (struct file_name_map *)-1;
-  else
+
+  /* Silently return NULL if we cannot open.  */
+  if (f)
     {
       int ch;
       int dirlen = strlen (dirname);
@@ -938,12 +938,11 @@ remap_filename (pfile, name, loc)
   const char *from, *p, *dir;
 
   if (! loc->name_map)
-    loc->name_map = read_name_map (pfile,
-				   loc->name
-				   ? loc->name : ".");
-
-  if (loc->name_map == (struct file_name_map *)-1)
-    return name;
+    {
+      loc->name_map = read_name_map (pfile, loc->name ? loc->name : ".");
+      if (! loc->name_map)
+	return name;
+    }
   
   from = name + strlen (loc->name) + 1;
   



More information about the Gcc-bugs mailing list