From: Ed Schonberg Date: Mon, 4 Aug 2008 08:38:06 +0000 (+0200) Subject: sem_prag.adb (Check_Precondition_Postcondition): When scanning the list of declaratio... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=75bee2700904533693299a7872018705d76671b6;p=platform%2Fupstream%2Fgcc.git sem_prag.adb (Check_Precondition_Postcondition): When scanning the list of declaration to find previous subprogram... 2008-08-04 Ed Schonberg * sem_prag.adb (Check_Precondition_Postcondition): When scanning the list of declaration to find previous subprogram, do not go to the original node of a generic unit. From-SVN: r138579 --- diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index f62d6c8..84fff32 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -1425,7 +1425,18 @@ package body Sem_Prag is P := N; while Present (Prev (P)) loop P := Prev (P); - PO := Original_Node (P); + + -- If the previous node is a generic subprogram, do not go to + -- to the original node, which is the unanalyzed tree: we need + -- to attach the pre/postconditions to the analyzed version + -- at this point. They get propagated to the original tree when + -- analyzing the corresponding body. + + if Nkind (P) not in N_Generic_Declaration then + PO := Original_Node (P); + else + PO := P; + end if; -- Skip past prior pragma