Commit c14bd502 by Ed Schonberg Committed by Pierre-Marie de Rodat

[Ada] Unnesting: fix handling of private types that are synchronized

2018-10-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* exp_unst.adb (In_Synchronized_Call): Handle properly private
	types whose full views are synchronized types, in order to
	recognize generated subprograms whose bodies must be considered
	reachable even if no direct calls to them are visible in the
	source.

From-SVN: r264974
parent 184d0451
2018-10-09 Ed Schonberg <schonberg@adacore.com>
* exp_unst.adb (In_Synchronized_Call): Handle properly private
types whose full views are synchronized types, in order to
recognize generated subprograms whose bodies must be considered
reachable even if no direct calls to them are visible in the
source.
2018-10-09 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_Modular_Op): When expanding an operation
on nonbinary modular types, convert the opersnds to an integer
type that is large enough to hold the modulus of the type, which
......
......@@ -227,6 +227,12 @@ package body Exp_Unst is
while Present (S) and then S /= Standard_Standard loop
if Is_Concurrent_Type (S) then
return True;
elsif Is_Private_Type (S)
and then Present (Full_View (S))
and then Is_Concurrent_Type (Full_View (S))
then
return True;
end if;
S := Scope (S);
......
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