Subject: Re: bug reports N

From: Zheng Gengbing <[email-masked]>
Date: Thu, 18 Apr 1996 08:41:17 +0800 (EAT)

On Wed, 17 Apr 1996, Guansong Zhang wrote:

> I think this is new bugs, I don't know wether it caused by pku's def.
> 
> program ta
> integer :: i
> integer(I4B)                :: n
> end
> 
> examine the dumpdep infor for this program, and explain the T_KIND, you can
> find it can not be linked to T_INT through root first order, unparse don't know
> when to print out integer for the second decl.
> 
> I hope we may discuss on the def for T_KIND later, is it in Sage++?
>

        This really exist a bug in hpfcc . As I think , my co-worker 
forgot to check if I4B is an scalar int intializtion expression .

	T_KIND is new and is not is Sage++. When we first conceived the
AST , we did not have a good plan to describe it . After our programming of
hpfcc , we rewrite the f90.y to fit our new defintion .  

	But I don't know what you mean you cannot find the T_INT ?
        
        The tree of the second type declaration in the example is:

                       VAR_DECL (bfnd)
                  +----------+-------------+
                  |          |           (null)
              EXPR_LIST    TYPE_OP
                  |          |
              VAR_REF      EXPR_LIST
                             |
                         NON_KIND_OP
                             |
                           VAR_REF

       Perhaps you mean you can not find the INTEGER to produce . Then I'll
describe the type of T_KIND .

       You can always find the type in node TYPE_OP ,

       the type node is as in this example : (you can refer to symb.h)

                     T_KIND
                        |
			|___ id
                        |
                        |___ variant
                        |
                        |___ entry.kind_decl.base_type (type) ==> T_INT
                        |
                        |___ entry.kind_decl.kindexp (llnd) 
                                    |
                                    |
                                EXPR_LIST
                                    |
                             +-------------+
                             |             |
                   KIND_OP              EXPR_LIST
                    NON_KIND_OP                ...
                     LEN_OP
                       NON_LEN_OP
                            |
                       expression 

         LEN_OP or NON_LEN_OP are occured only in CHARACTER type declaration.

         You can find the INTEGER in the base_type .

***************************************************************************
*     Zheng Gengbin                 *                                     *
*                                   *                                     *
*  Dept. of Computer Science        *  Phone:  86-10-2585088              *
*         & Technology              *  Email:                             *
*                                   *      [email-masked]   *
*  Peking University P.R.China      *  Mail:                              *
*                                   *      Room 1077 ,Building 47,        *
*                                   *      Peking University, P.R.China   *
***************************************************************************