[patch, fortran] PR33317 CSHIFT/EOSHIFT: Rejects optional dummy for DIM=

Jerry DeLisle jvdelisle@verizon.net
Sun Nov 18 22:28:00 GMT 2007


Jerry DeLisle wrote:
> :ADDPATCH fortran:
> 
> This patch fixes this bug by enabling the DIM argument for these two 
> functions in their respective check routines.
> 
> Then in resolve.c, the DIM argument is marked so that later in 
> trans-intrinsic.c, the type can be cast to the default integer size so 
> that it matches with the respective runtime library function.
> 
> The previous insertion of the type conversion was messing up the 
> translation causing a segfault when a NULL (DIM argument not present) in 
> the calling routine optional argument was not present.  See test case 
> for example.
> 
> Also fixed up some white space problems found along the way.
> 
> Regression tested on x86-64.  OK for trunk?
> 
> Jerry
> 
> 2007-11-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
> 
>     * trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy
>     argument to default integer if flagged to do so. Fix typo in comment.
>     * resolve.c (gfc_resolve_dim_arg): Whitespace cleanup.
>     * iresolve.c (gfc_resolve_cshift): Do not convert type, mark attribute
>     for converting the DIM type appropriately in trans-expr.c.
>     (gfc_resolve_eoshift): Likewise.
>     * check.c (dim_check): Remove pre-existing dead code.
>     (gfc_check_cshift): Enable dim_check to allow DIM as an optional.
>     (gfc_check_eoshift): Likewise.
>     * trans_intrinsic.c (gfc_conv_intrinsic_function_args): Fix whitespace.
> 
Committed after OK from Paul on IRC. With one comment incorporated and re-tested.

Jerry



More information about the Fortran mailing list