aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2013-01-22 10:01:08 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2013-01-22 10:01:08 +0000
commit257e81a6191507c54271466eb360b0822ff94fb9 (patch)
tree7b7bb1e9cc6bb612cb66f4343c281c9524ac08b9 /gcc
parent48a24fcfc32ab00e84821c25af74252ff26b48b7 (diff)
downloadgcc-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')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/gcc-interface/trans.c26
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/warn8.adb8
4 files changed, 38 insertions, 6 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 426c9a7..263113b9 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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,
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. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 343611c..2fe215e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gnat.dg/warn8.adb b/gcc/testsuite/gnat.dg/warn8.adb
new file mode 100644
index 0000000..8fddb6f
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/warn8.adb
@@ -0,0 +1,8 @@
+-- { dg-do compile }
+
+pragma Optimize (Space); -- { dg-warning "must specify -Os" }
+
+procedure Warn8 is
+begin
+ null;
+end;