trans.c (Pragma_to_gnu): Use optimize_size instead of optimize and adjust warning message.

* gcc-interface/trans.c (Pragma_to_gnu) <Name_Space>: Use optimize_size
	instead of optimize and adjust warning message.
	(Compilation_Unit_to_gnu): Process pragmas preceding the unit.

From-SVN: r195366
This commit is contained in:
Eric Botcazou 2013-01-22 10:01:08 +00:00 committed by Eric Botcazou
parent 48a24fcfc3
commit 257e81a619
4 changed files with 38 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2013-01-22 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (Pragma_to_gnu) <Name_Space>: Use optimize_size
instead of optimize and adjust warning message.
(Compilation_Unit_to_gnu): Process pragmas preceding the unit.
2013-01-22 Tristan Gingold <gingold@adacore.com>
* gcc-interface/gigi.h (ADT_unhandled_except_decl,

View File

@ -6,7 +6,7 @@
* *
* C Implementation File *
* *
* Copyright (C) 1992-2012, Free Software Foundation, Inc. *
* Copyright (C) 1992-2013, Free Software Foundation, Inc. *
* *
* GNAT is free software; you can redistribute it and/or modify it under *
* terms of the GNU General Public License as published by the Free Soft- *
@ -1254,16 +1254,21 @@ Pragma_to_gnu (Node_Id gnat_node)
switch (Chars (Expression
(First (Pragma_Argument_Associations (gnat_node)))))
{
case Name_Time: case Name_Space:
if (!optimize)
post_error ("insufficient -O value?", gnat_node);
break;
case Name_Off:
if (optimize)
post_error ("must specify -O0?", gnat_node);
break;
case Name_Space:
if (!optimize_size)
post_error ("must specify -Os?", gnat_node);
break;
case Name_Time:
if (!optimize)
post_error ("insufficient -O value?", gnat_node);
break;
default:
gcc_unreachable ();
}
@ -4743,6 +4748,7 @@ Compilation_Unit_to_gnu (Node_Id gnat_node)
const bool body_p = (Nkind (gnat_unit) == N_Package_Body
|| Nkind (gnat_unit) == N_Subprogram_Body);
const Entity_Id gnat_unit_entity = Defining_Entity (gnat_unit);
Node_Id gnat_pragma;
/* Make the decl for the elaboration procedure. */
tree gnu_elab_proc_decl
= create_subprog_decl
@ -4778,8 +4784,16 @@ Compilation_Unit_to_gnu (Node_Id gnat_node)
return;
}
/* Then process any pragmas and declarations preceding the unit. */
for (gnat_pragma = First (Context_Items (gnat_node));
Present (gnat_pragma);
gnat_pragma = Next (gnat_pragma))
if (Nkind (gnat_pragma) == N_Pragma)
add_stmt (gnat_to_gnu (gnat_pragma));
process_decls (Declarations (Aux_Decls_Node (gnat_node)), Empty, Empty,
true, true);
/* Process the unit itself. */
add_stmt (gnat_to_gnu (gnat_unit));
/* If we can inline, generate code for all the inlined subprograms. */

View File

@ -1,3 +1,7 @@
2013-01-22 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/warn8.adb: New test.
2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/55919

View File

@ -0,0 +1,8 @@
-- { dg-do compile }
pragma Optimize (Space); -- { dg-warning "must specify -Os" }
procedure Warn8 is
begin
null;
end;