diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2013-01-22 10:01:08 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2013-01-22 10:01:08 +0000 |
commit | 257e81a6191507c54271466eb360b0822ff94fb9 (patch) | |
tree | 7b7bb1e9cc6bb612cb66f4343c281c9524ac08b9 /gcc/ada/gcc-interface/trans.c | |
parent | 48a24fcfc32ab00e84821c25af74252ff26b48b7 (diff) | |
download | gcc-257e81a6191507c54271466eb360b0822ff94fb9.zip gcc-257e81a6191507c54271466eb360b0822ff94fb9.tar.gz gcc-257e81a6191507c54271466eb360b0822ff94fb9.tar.bz2 |
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
Diffstat (limited to 'gcc/ada/gcc-interface/trans.c')
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index 722ce73..6bb2e5b 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -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. */ |