Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Compilers LCC > What can I do?
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 23 Topic 955 of 1058
Post > Topic >>

What can I do?

by jacob navia <jacob@[EMAIL PROTECTED] > Jun 3, 2007 at 12:09 AM

Consider this program:
int fn(int a)
{

         if (a == 6 || a == 7 || a == 4 || a == 67 || a == 78 &&
         a == 6 || a == 7 || a == 4 || a == 67 || a == 78 &&
         a == 6 || a == 7 || a == 4 || a == 67 || a == 78 &&
         a == 6 || a == 7 || a == 4 || a == 67 || a == 78 &&

	(4955 lines exactly the same as above elided)

         a == 6 || a == 7 || a == 4 || a == 67 || a == 78 &&
         a == 6 || a == 7 || a == 4 || a == 67 || a == 78 )
                 return 1;
         return 0;
}

This program makes the lcc compiler crash with stack overflow.
The evaluation of this SINGLE statement is recursive, each clause
calls recursively the expr3() function in expr.c.

What can I do here?

Fixing this would have to change drastically the design of the
compiler. In the other hand leaving this as is would leave a
compiler that can crash in some circumstances.

Is this legal C?

This program was generated by a customer, not
written by hand of course.

Is there a limit that the standard for this? In the limits section
(5.2.4.1) the standard does NOT mention this kind of limit, at
least as far as I can see (PLEASE correct me, I would be happy to be
wrong! :-) )

jacob
 




 23 Posts in Topic:
What can I do?
jacob navia <jacob@[EM  2007-06-03 00:09:22 
Re: What can I do?
Gregor H. <nomail@[EMA  2007-06-03 00:16:04 
Re: What can I do?
Gregor H. <nomail@[EMA  2007-06-03 00:26:29 
Re: What can I do?
Gregor H. <nomail@[EMA  2007-06-03 00:39:23 
Re: What can I do?
jacob navia <jacob@[EM  2007-06-03 09:06:35 
Re: What can I do?
Gregor H. <nomail@[EMA  2007-06-03 15:29:35 
Re: What can I do?
John Nagle <nagle@[EMA  2007-06-02 15:34:37 
Re: What can I do?
Giorgos Keramidas <ker  2007-06-03 15:33:48 
Re: What can I do?
richard@[EMAIL PROTECTED]  2007-06-02 22:23:21 
Re: What can I do?
jacob navia <jacob@[EM  2007-06-03 09:08:00 
Re: What can I do?
Eric Schmidt <eric4129  2007-06-02 16:54:03 
Re: What can I do?
"Rod Pemberton"  2007-06-02 22:28:28 
Re: What can I do?
richard@[EMAIL PROTECTED]  2007-06-03 15:58:59 
Re: What can I do?
"Rod Pemberton"  2007-06-03 12:43:25 
Re: What can I do?
Hallvard B Furuseth <h  2007-06-03 21:22:48 
Re: What can I do?
Cesar Rabak <csrabak@[  2007-06-03 02:18:53 
Re: What can I do?
Keith Thompson <kst-u@  2007-06-03 00:00:00 
Re: What can I do?
jacob navia <jacob@[EM  2007-06-03 09:15:16 
Re: What can I do?
CBFalconer <cbfalconer  2007-06-03 02:09:14 
Re: What can I do?
Dave Hanson <drhanson@  2007-06-03 14:53:50 
Re: What can I do?
Hallvard B Furuseth <h  2007-06-03 21:44:46 
Re: What can I do?
Keith Thompson <kst-u@  2007-06-03 13:08:36 
Re: What can I do?
"christian.bau"  2007-06-03 14:32:10 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sun Jul 6 16:37:20 CDT 2008.