Commit 1788bf11 by Yannick Moy Committed by Pierre-Marie de Rodat

[Ada] Avoid crash in GNATprove due to inlining inside type

The special inlining for GNATprove should not inline calls inside record
types, used for the constraints of components.

There is no impact on compilation.

2019-08-13  Yannick Moy  <moy@adacore.com>

gcc/ada/

	* sem_res.adb (Resolve_Call): Do not inline calls inside record
	types.

From-SVN: r274344
parent 258325dd
2019-08-13 Yannick Moy <moy@adacore.com>
* sem_res.adb (Resolve_Call): Do not inline calls inside record
types.
2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch4.adb (Analyze_One_Call): Remove bypass for type
......
......@@ -7062,6 +7062,15 @@ package body Sem_Res is
end if;
end if;
-- Cannot inline a call inside the definition of a record type,
-- typically inside the constraints of the type. Calls in
-- default expressions are also not inlined, but this is
-- filtered out above when testing In_Default_Expr.
elsif Is_Record_Type (Current_Scope) then
Cannot_Inline
("cannot inline & (inside record type)?", N, Nam_UA);
-- With the one-pass inlining technique, a call cannot be
-- inlined if the corresponding body has not been seen yet.
......
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