This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

c/8730: Cannot compile C function inside other C function


>Number:         8730
>Category:       c
>Synopsis:       Cannot compile C function inside other C function
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Nov 27 02:16:02 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     University of Saarbruecken
>Release:        gcc-2.95.3 - gcc-3.2
>Organization:
>Environment:
SuSE 7.1-8.0, gcc-2.95.3 - gcc-3.2
>Description:
During compilation by gcc-2.95.3 with -O1, -O2, -O3 I got messages:

Internal compiler error in `instantiate_virtual_regs_1', at function.c:3881

gcc-3.0 or gcc-3.2 cannot compile with/without optimization with error:

Internal compiler error in expand_expr, at expr.c:6437

I removed all not important statements in my C source, so now it is about 30 lines:

 double cblas_dnrm2(const int N, const double *X, const int incX);
 void enmin_(int *N, void *func, void *grad, void *fmsg, double *B, double *X,
             int *NCF, int *NCG, int *EXSTAT);
 void outres_(int *n, int *iter, double *res, double *mflops, int *info);
 void func(int *dummy, double *inB, double *res);
 extern double *A1, *A2, *V, *VV, *W;

 int test(int N, int NN[N+1], int NNN, int MaxRank, int NEL, double A[][NEL],
          int MASK[N-1][NEL], double B[MaxRank][NNN], int MaxIter1)
 { int Rank, len=NN[N]-NN[N-1];
   double Res[2];

 void Minimize(int M, double AA[M][NEL], double *B, double V[MaxRank][NEL], int Init)
 { int NCF, NCG, EXSTAT;

   enmin_(NN+N-1, func, func, outres_, B, B+NN[N+1]+1, &NCF, &NCG, &EXSTAT);
   func(NN+N-1, B, Res);
   Res[1]=cblas_dnrm2(NEL, V[Rank], 1);
   return;
 }
   int M=len, j;
   for(Rank=0; Rank<MaxRank; Rank++)
     for(j=0; j<MaxIter1; j++)
       Minimize(M, (void*)A2, B[Rank], (void*)V, j);
   return Rank;
 }
>How-To-Repeat:
gcc -v -save-temps -Wall -c t.c
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="t.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="t.c"

IGRvdWJsZSBjYmxhc19kbnJtMihjb25zdCBpbnQgTiwgY29uc3QgZG91YmxlICpYLCBjb25zdCBp
bnQgaW5jWCk7CiB2b2lkIGVubWluXyhpbnQgKk4sIHZvaWQgKmZ1bmMsIHZvaWQgKmdyYWQsIHZv
aWQgKmZtc2csIGRvdWJsZSAqQiwgZG91YmxlICpYLAogICAgICAgICAgICAgaW50ICpOQ0YsIGlu
dCAqTkNHLCBpbnQgKkVYU1RBVCk7CiB2b2lkIG91dHJlc18oaW50ICpuLCBpbnQgKml0ZXIsIGRv
dWJsZSAqcmVzLCBkb3VibGUgKm1mbG9wcywgaW50ICppbmZvKTsKIHZvaWQgZnVuYyhpbnQgKmR1
bW15LCBkb3VibGUgKmluQiwgZG91YmxlICpyZXMpOwogZXh0ZXJuIGRvdWJsZSAqQTEsICpBMiwg
KlYsICpWViwgKlc7CgogaW50IHRlc3QoaW50IE4sIGludCBOTltOKzFdLCBpbnQgTk5OLCBpbnQg
TWF4UmFuaywgaW50IE5FTCwgZG91YmxlIEFbXVtORUxdLAogICAgICAgICAgaW50IE1BU0tbTi0x
XVtORUxdLCBkb3VibGUgQltNYXhSYW5rXVtOTk5dLCBpbnQgTWF4SXRlcjEpCiB7IGludCBSYW5r
LCBsZW49Tk5bTl0tTk5bTi0xXTsKICAgZG91YmxlIFJlc1syXTsKCiB2b2lkIE1pbmltaXplKGlu
dCBNLCBkb3VibGUgQUFbTV1bTkVMXSwgZG91YmxlICpCLCBkb3VibGUgVltNYXhSYW5rXVtORUxd
LCBpbnQgSW5pdCkKIHsgaW50IE5DRiwgTkNHLCBFWFNUQVQ7CgogICBlbm1pbl8oTk4rTi0xLCBm
dW5jLCBmdW5jLCBvdXRyZXNfLCBCLCBCK05OW04rMV0rMSwgJk5DRiwgJk5DRywgJkVYU1RBVCk7
CiAgIGZ1bmMoTk4rTi0xLCBCLCBSZXMpOwogICBSZXNbMV09Y2JsYXNfZG5ybTIoTkVMLCBWW1Jh
bmtdLCAxKTsKICAgcmV0dXJuOwogfQogICBpbnQgTT1sZW4sIGo7CiAgIGZvcihSYW5rPTA7IFJh
bms8TWF4UmFuazsgUmFuaysrKQogICAgIGZvcihqPTA7IGo8TWF4SXRlcjE7IGorKykKICAgICAg
IE1pbmltaXplKE0sICh2b2lkKilBMiwgQltSYW5rXSwgKHZvaWQqKVYsIGopOwogICByZXR1cm4g
UmFuazsKIH0KCg==


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]