pro64-support
[Top] [All Lists]

RE: opt failure with latest sources

To: <goodwin@xxxxxxxxxxxxx>, <pro64-support@xxxxxxxxxxx>
Subject: RE: opt failure with latest sources
From: "Peng Tu" <tu@xxxxxxxxxxxxx>
Date: Wed, 4 Oct 2000 16:28:24 -0700
Importance: Normal
In-reply-to: <14811.31042.978733.165876@xxxxxxxxxxxxxxxxxxxxxx>
Sender: owner-pro64-support@xxxxxxxxxxx
The bug seems to be in opt_rename.cxx.  At line 322, one needs to
add:
    tmp->Assign_sign_extd(cr->Is_sign_extd());

Note that lines 318-321 are copying a CODEREP's dtype and desctype
into the 'tmp CODEREP'.  However it doesn't copy the Is_sign_extd()
flag, this caused an inconsistency.

Peng.
BTW. The 'tmp' contains 'invented/approximate dtype/desc types'
before those copy statements.  This is reason for those copy statements
to be there in the first place.

> -----Original Message-----
> From: owner-pro64-support@xxxxxxxxxxx
> [mailto:owner-pro64-support@xxxxxxxxxxx]On Behalf Of David Goodwin
> Sent: Wednesday, October 04, 2000 11:39 AM
> To: pro64-support@xxxxxxxxxxx
> Cc: goodwin@xxxxxxxxxxxxx
> Subject: opt failure with latest sources
>
>
>
> I'm getting an Is_True failure with the latest sources for the attached
> program. The binary release doesn't have the problem, but it isn't an
> Is_True_On compiler, so I can't tell if the problem is with my sources
> or not.
>
> I compared the *.B file coming out of the front end, as well as the whirl
> at each phase leading up to the failure, and they seem the same for both
> compilers.
>
> You may want to release Is_True_On compilers from now on, since that would
> help debugging for those working with source, and also help find more bugs
> in general.
>
> David
>
>
> ### Assertion failure at line 3859 of
>     /be/opt/opt_etable.cxx:
> ### Compiler Error in file raw.c during Global Optimization -- LPRE: Build
>     initial occurrence lists phase:
> ### EXP_WORKLST::Adjust_combined_types: cr's sign extension flag is
>     inconsistentxt-cc INTERNAL ERROR:
>     returned non-zero status 1
>
>
> #include <stdio.h>
>
> unsigned char cstate;
>
> main() {
>     int n;
>
>     while(1) {
>         n = foo();
>         if ( n < 0 ) {
>             bar(1);
>         }
>         if ( n == 0 ) break;
>     }
>     fprintf( stderr, "index=%d\n", (__int32_t)cstate);
>     exit(0);
> }
>


<Prev in Thread] Current Thread [Next in Thread>