Commit 00f7060a by Richard Biener Committed by Richard Biener

re PR lto/91307 (-flto causes binary to vary)

2019-08-20  Richard Biener  <rguenther@suse.de>

	PR lto/91307
	* ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
	by collect2 when targetm.have_ctors_dtors which avoids dragging
	in temporary filenames from LTO input objects.

From-SVN: r274748
parent 3ed01d54
2019-08-20 Richard Biener <rguenther@suse.de> 2019-08-20 Richard Biener <rguenther@suse.de>
PR lto/91307
* ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
by collect2 when targetm.have_ctors_dtors which avoids dragging
in temporary filenames from LTO input objects.
2019-08-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/37242 PR tree-optimization/37242
* tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b) * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
to (T)a + (T)b if we know that a + b does not overflow. to (T)a + (T)b if we know that a + b does not overflow.
......
...@@ -836,13 +836,18 @@ cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final, ...@@ -836,13 +836,18 @@ cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final,
/* The priority is encoded in the constructor or destructor name. /* The priority is encoded in the constructor or destructor name.
collect2 will sort the names and arrange that they are called at collect2 will sort the names and arrange that they are called at
program startup. */ program startup. */
if (final) if (!targetm.have_ctors_dtors && final)
sprintf (which_buf, "%c_%.5d_%d", which, priority, counter++); {
sprintf (which_buf, "%c_%.5d_%d", which, priority, counter++);
name = get_file_function_name (which_buf);
}
else else
/* Proudce sane name but one not recognizable by collect2, just for the {
case we fail to inline the function. */ /* Proudce sane name but one not recognizable by collect2, just for the
sprintf (which_buf, "sub_%c_%.5d_%d", which, priority, counter++); case we fail to inline the function. */
name = get_file_function_name (which_buf); sprintf (which_buf, "_sub_%c_%.5d_%d", which, priority, counter++);
name = get_identifier (which_buf);
}
decl = build_decl (input_location, FUNCTION_DECL, name, decl = build_decl (input_location, FUNCTION_DECL, name,
build_function_type_list (void_type_node, NULL_TREE)); build_function_type_list (void_type_node, NULL_TREE));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment