This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Don't set dir prefix twice (PR middle-end/60484)


This patch makes sure that we set the directory prefix of
dump_base_name only once, otherwise we'd end up with invalid path,
resulting in error: could not open dump file ...
This happened because finish_options is called for every optimize
attribute and once more for command line options and every time it
added the directory prefix.

Regtested/bootstrapped on x86_64-linux, ok for trunk?

2014-03-14  Jakub Jelinek  <jakub@redhat.com>
	    Marek Polacek  <polacek@redhat.com>

	PR middle-end/60484
	* common.opt (dump_base_name_prefixed): New Variable.
	* opts.c (finish_options): Don't prepend directory to x_dump_base_name
	if x_dump_base_name_prefixed is already set, set it at the end.

diff --git gcc/common.opt gcc/common.opt
index 661516d..d8918d1 100644
--- gcc/common.opt
+++ gcc/common.opt
@@ -211,6 +211,10 @@ bool flag_opts_finished
 Variable
 unsigned int flag_sanitize
 
+; Flag whether a prefix has been added to dump_base_name
+Variable
+bool dump_base_name_prefixed = false
+
 ###
 Driver
 
diff --git gcc/opts.c gcc/opts.c
index 5dd442f..41c1a73 100644
--- gcc/opts.c
+++ gcc/opts.c
@@ -645,7 +645,9 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
 {
   enum unwind_info_type ui_except;
 
-  if (opts->x_dump_base_name && ! IS_ABSOLUTE_PATH (opts->x_dump_base_name))
+  if (opts->x_dump_base_name
+      && ! IS_ABSOLUTE_PATH (opts->x_dump_base_name)
+      && ! opts->x_dump_base_name_prefixed)
     {
       /* First try to make OPTS->X_DUMP_BASE_NAME relative to the
 	 OPTS->X_DUMP_DIR_NAME directory.  Then try to make
@@ -675,6 +677,7 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
 	      opts->x_dump_base_name = new_dump_base_name;
 	    }
 	}
+	opts->x_dump_base_name_prefixed = true;
     }
 
   /* Handle related options for unit-at-a-time, toplevel-reorder, and

	Marek


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]