diff options
author | sam <sam@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-02-27 11:53:55 +0000 |
---|---|---|
committer | sam <sam@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-02-27 11:53:55 +0000 |
commit | 87f9eef516a3c7de69746d5effa92ec486480d66 (patch) | |
tree | fd8cfa265faaebdd5a596dcdf4f456955046296f /gcc/ada/sem_ch13.adb | |
parent | 6295ca724123bcba17754cde6db8280274894197 (diff) | |
download | gcc-87f9eef516a3c7de69746d5effa92ec486480d66.tar.gz |
gcc/ada/
PR ada/34799
* sem_ch13.adb (Analyze_Record_Representation_Clause): Check
that underlying type is present.
gcc/testsuite/
PR ada/34799
* gnat.dg/specs/pr34799.ads: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132707 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sem_ch13.adb')
-rw-r--r-- | gcc/ada/sem_ch13.adb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb index 33a55a825b3..2b58c12edcd 100644 --- a/gcc/ada/sem_ch13.adb +++ b/gcc/ada/sem_ch13.adb @@ -2747,7 +2747,10 @@ package body Sem_Ch13 is -- We are only interested in the case where there is at least one -- unrepped component, and at least half the components have rep -- clauses. We figure that if less than half have them, then the - -- partial rep clause is really intentional. + -- partial rep clause is really intentional. If the component + -- type has no underlying type set at this point (as for a generic + -- formal type), we don't know enough to give a warning on the + -- component. if Num_Unrepped_Components > 0 and then Num_Unrepped_Components < Num_Repped_Components @@ -2756,6 +2759,7 @@ package body Sem_Ch13 is while Present (Comp) loop if No (Component_Clause (Comp)) and then Comes_From_Source (Comp) + and then Present (Underlying_Type (Etype (Comp))) and then (Is_Scalar_Type (Underlying_Type (Etype (Comp))) or else Size_Known_At_Compile_Time (Underlying_Type (Etype (Comp)))) |