summaryrefslogtreecommitdiff
path: root/gcc/ada/par-ch9.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-19 10:25:53 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-19 10:25:53 +0000
commit389062c95789bc6f7cec1b5d92b7bd233377003d (patch)
tree81beccc9022d393327bfc13b482c3b472b676ace /gcc/ada/par-ch9.adb
parent4563499dfd676ff1ff23a4184253ae2bc8ea5399 (diff)
downloadgcc-389062c95789bc6f7cec1b5d92b7bd233377003d.tar.gz
2014-02-19 Robert Dewar <dewar@adacore.com>
* exp_attr.adb (Expand_Min_Max_Attribute): New procedure (Expand_N_Attribute_Reference): Use this procedure for Min and Max. * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove object declarations from list of actions. * output.ads, output.adb (Delete_Last_Char): New procedure. * sinfo.ads: Document handling of Mod and expression with actions in Modify_Tree_For_C mode. 2014-02-19 Ed Schonberg <schonberg@adacore.com> * par-ch9.adb (P_Task): Add a null statement to produce a well-formed task body when due to a previous syntax error the statement list is empty. 2014-02-19 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Check_Dependency_Clause): Account for the case where a state with a non-null refinement matches a null output list. Comment reformatting. (Inputs_Match): Copy a solitary input to avoid an assertion failure when trying to match the same input in multiple clauses. 2014-02-19 Gary Dismukes <dismukes@adacore.com> * sem_attr.adb: Minor typo fix. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207880 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/par-ch9.adb')
-rw-r--r--gcc/ada/par-ch9.adb11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ada/par-ch9.adb b/gcc/ada/par-ch9.adb
index 7e4a9ee4e39..da7d76d573a 100644
--- a/gcc/ada/par-ch9.adb
+++ b/gcc/ada/par-ch9.adb
@@ -144,6 +144,17 @@ package body Ch9 is
end if;
Parse_Decls_Begin_End (Task_Node);
+
+ -- The statement list of a task body needs to include at least a
+ -- null statement, so if a parsing error produces an empty list,
+ -- patch it now.
+
+ if
+ No (First (Statements (Handled_Statement_Sequence (Task_Node))))
+ then
+ Set_Statements (Handled_Statement_Sequence (Task_Node),
+ New_List (Make_Null_Statement (Token_Ptr)));
+ end if;
end if;
return Task_Node;