diff options
author | Justin Squirek <squirek@adacore.com> | 2020-03-12 07:01:43 -0400 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-06-15 04:04:31 -0400 |
commit | 773e99ac3e61bd84f9848e78e17867a920f9ae53 (patch) | |
tree | 2be9737f01ffa0ed2c05f6d40ffddbad55c9802c /libgcc | |
parent | fdcbc0764dee19e9e1eeeb17c960567474b4d688 (diff) | |
download | gcc-773e99ac3e61bd84f9848e78e17867a920f9ae53.zip gcc-773e99ac3e61bd84f9848e78e17867a920f9ae53.tar.gz gcc-773e99ac3e61bd84f9848e78e17867a920f9ae53.tar.bz2 |
[Ada] Bad access checks on if/case expression as actual
2020-06-15 Justin Squirek <squirek@adacore.com>
gcc/ada/
* exp_ch4.adb (Expand_N_Case_Expression): Set default value for
Target to silence potential warnings.
(Expand_N_If_Expression): Add calculation to check when the if
expression is used directly in the context of an actual of an
anonymous access type and add a special path to force expansion
of the if expression in this case.
* exp_ch6.adb (Expand_Branch): Generate an assignment to the
level temporary for a given branch.
(Expand_Call_Helper): Add expansion to allow for creating a
temporary to store associated accessiblity levels on each branch
of the conditional expression. Also perform expansion of
function calls into expressions with actions, and fixup
references to N with Call_Node.
(Insert_Level_Assign): Move through nested conditional
expressions to each branch.
* sem_util.ads, sem_util.adb (Is_Anonymous_Access_Actual): Added
to detect when to force expansion of if expressions.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions