Commit 2749b01b by Eric Botcazou Committed by Arnaud Charlet

* gcc-interface/trans.c (Pragma_to_gnu): Deal with Warning_As_Error.

From-SVN: r208149
parent e7ba564f
2014-02-25 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (Pragma_to_gnu): Deal with Warning_As_Error.
2014-02-25 Robert Dewar <dewar@adacore.com>
* rtsfind.adb (Is_RTE): Protect against entity with no scope
......
......@@ -1194,6 +1194,7 @@ static tree
Pragma_to_gnu (Node_Id gnat_node)
{
tree gnu_result = alloc_stmt_list ();
unsigned char pragma_id;
Node_Id gnat_temp;
/* Do nothing if we are just annotating types and check for (and ignore)
......@@ -1202,7 +1203,8 @@ Pragma_to_gnu (Node_Id gnat_node)
|| !Is_Pragma_Name (Chars (Pragma_Identifier (gnat_node))))
return gnu_result;
switch (Get_Pragma_Id (Chars (Pragma_Identifier (gnat_node))))
pragma_id = Get_Pragma_Id (Chars (Pragma_Identifier (gnat_node)));
switch (pragma_id)
{
case Pragma_Inspection_Point:
/* Do nothing at top level: all such variables are already viewable. */
......@@ -1319,6 +1321,7 @@ Pragma_to_gnu (Node_Id gnat_node)
post_error ("must specify -g?", gnat_node);
break;
case Pragma_Warning_As_Error:
case Pragma_Warnings:
{
Node_Id gnat_expr;
......@@ -1331,12 +1334,26 @@ Pragma_to_gnu (Node_Id gnat_node)
gnat_temp = First (Pragma_Argument_Associations (gnat_node));
/* This is the String form: pragma Warnings (String). */
/* This is the String form: pragma Warning{s|_As_Error}(String). */
if (Nkind (Expression (gnat_temp)) == N_String_Literal)
{
kind = DK_WARNING;
switch (pragma_id)
{
case Pragma_Warning_As_Error:
kind = DK_ERROR;
imply = false;
break;
case Pragma_Warnings:
kind = DK_WARNING;
imply = true;
break;
default:
gcc_unreachable ();
}
gnat_expr = Expression (gnat_temp);
imply = true;
}
/* This is the On/Off form: pragma Warnings (On | Off [,String]). */
......
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