aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorJustin Squirek <squirek@adacore.com>2020-03-12 07:01:43 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-06-15 04:04:31 -0400
commit773e99ac3e61bd84f9848e78e17867a920f9ae53 (patch)
tree2be9737f01ffa0ed2c05f6d40ffddbad55c9802c /libgcc
parentfdcbc0764dee19e9e1eeeb17c960567474b4d688 (diff)
downloadgcc-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