aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/init.c
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2018-01-11 08:54:17 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-01-11 08:54:17 +0000
commita2fd4f0efe04ccf7052b367b407de4c92acfa795 (patch)
tree96695641879293e94fc9892d6c86eba0019cef4f /gcc/ada/init.c
parent6560f85165c084768a77dda7086269604781ce5e (diff)
downloadgcc-a2fd4f0efe04ccf7052b367b407de4c92acfa795.zip
gcc-a2fd4f0efe04ccf7052b367b407de4c92acfa795.tar.gz
gcc-a2fd4f0efe04ccf7052b367b407de4c92acfa795.tar.bz2
[Ada] Spurious error on referene to subcoponrnt in dynamic predicate
This patch fixes a visibility error in the expression for a dynamic predicate of a record type, when the expression contains a reference to a subcomponent of the record given by a selected component whose prefix is the name of the enclosing component. Executing gnatmake -q -gnata main ./main must yield: TGV OK Amtrak broken, as usual ---- with Text_IO; use Text_IO; with Recpred; use Recpred; procedure Main is TGV : Train_Data; Amtrak : Train_Data; begin TGV := (20, (10,10)); Put_Line ("TGV OK"); begin Amtrak := (30, (40, 40)); exception when Others => Put_Line ("Amtrak broken, as usual"); end; end; ---- package Recpred is type Train_Position is record TTD : Integer; VSS : Integer; end record; type Train_Data is record MA : Integer; Front_Position : Train_Position; end record with Dynamic_Predicate => MA >= Front_Position.TTD; end Recpred; 2018-01-11 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a subcomponent of the current entity when building the body for a dynamic predicate function for a record with composite subcomponents. From-SVN: r256514
Diffstat (limited to 'gcc/ada/init.c')
0 files changed, 0 insertions, 0 deletions