Commit 309e9930 by Paul Thomas

re PR fortran/40726 (miscompilation at -O1)

2009-07-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/40726
	* trans-decl.c (gfc_get_extern_function_decl): Do not set
	DECL_IS_MALLOC for pointer valued functions.
	(build_function_decl): The same.

From-SVN: r149846
parent 7fa94fbb
2009-07-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/40726
* trans-decl.c (gfc_get_extern_function_decl): Do not set
DECL_IS_MALLOC for pointer valued functions.
(build_function_decl): The same.
2009-07-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/40727
......
......@@ -1423,12 +1423,6 @@ gfc_get_extern_function_decl (gfc_symbol * sym)
FUNCTION_DECL, name, type);
SET_DECL_ASSEMBLER_NAME (fndecl, mangled_name);
/* If the return type is a pointer, avoid alias issues by setting
DECL_IS_MALLOC to nonzero. This means that the function should be
treated as if it were a malloc, meaning it returns a pointer that
is not an alias. */
if (POINTER_TYPE_P (type))
DECL_IS_MALLOC (fndecl) = 1;
/* Set the context of this decl. */
if (0 && sym->ns && sym->ns->proc_name)
......@@ -1559,13 +1553,6 @@ build_function_decl (gfc_symbol * sym)
/* Don't call layout_decl for a RESULT_DECL.
layout_decl (result_decl, 0); */
/* If the return type is a pointer, avoid alias issues by setting
DECL_IS_MALLOC to nonzero. This means that the function should be
treated as if it were a malloc, meaning it returns a pointer that
is not an alias. */
if (POINTER_TYPE_P (type))
DECL_IS_MALLOC (fndecl) = 1;
/* Set up all attributes for the function. */
DECL_CONTEXT (fndecl) = current_function_decl;
DECL_EXTERNAL (fndecl) = 0;
......
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