Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #35245

Re: Baby X

From Dr Nick <nospam-4@temporary-address.org.uk>
Newsgroups comp.lang.c
Subject Re: Baby X
References (8 earlier) <ku3hqb$f7b$1@speranza.aioe.org> <lnk3juo9g8.fsf@nuthaus.mib.org> <874naxz7h3.fsf@temporary-address.org.uk> <gk5d0992fcl1ot675sv2pb18639i9sorb3@4ax.com> <ku6pn4$tue$1@dont-email.me>
Date 2013-08-11 11:02 +0100
Message-ID <87bo54y28r.fsf@temporary-address.org.uk> (permalink)

Show all headers | View raw


James Kuyper <jameskuyper@verizon.net> writes:

> On 08/10/2013 03:41 PM, Robert Wessel wrote:
>> On Sat, 10 Aug 2013 20:11:36 +0100, Dr Nick
>> <nospam-4@temporary-address.org.uk> wrote:
> ...
>>> This presumably makes this (typed into this message) abomination legal:
>>>
>>> int func(int parm) {
>>>    if(parm > 0) {
>>>      printf("I'm positive about things\n");
>>>      return -parm;
>>>    }
>>>    printf("I'm not very positive you know\n");
>>> }
>>>
>>> int main(void) {
>>>    int x = 27;
>>>    ...
>>>    code to get a value in q
>>>    ...
>>>    if(q > 0)
>>>      x = func(y);
>>>   else
>>>     func(y);
>>>   /* x is 27 if q was negative or zero, otherwise it's -q */
>>>   ....
>>> }
>> 
>> 
>> No it doesn't.  As Keith mentioned, the special rule is only for
>> main().  Falling off other functions is undefined.  C89 has always
>> allowed you to fall off the end of main() to end the program (again,
>> that applies to no other function but main()), although the specific
>> value returned to the system is undefined.  C99 strengthens that by
>> defining the value retuned in that case to be zero.
>
> I think that, in Dr. Nick's example, 'q' and 'y' were meant to be the
> same variable. If so, then his example does not depend upon the special
> rule that applies to main(), but only upon the more general rule:

It was.  Heaven knows how and why I did that.
>
> "If the } that terminates a function is reached, and the value of the
> function call is used by the caller, the behavior is undefined." (6.9.1p12).
>
> The '}' that terminates func() is reached only if y is not positive. The
> value returned by func() is used only if q is positive. If I'm right
> about 'q' and 'y' being intended to be the same variable, then 6.9.1p12
> never applies.

That's what I think.  Horrible, isn't it?

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-03 16:40 -0700
  Re: Baby X Jorgen Grahn <grahn+nntp@snipabacken.se> - 2013-08-04 06:04 +0000
    Re: Baby X "BartC" <bc@freeuk.com> - 2013-08-04 10:29 +0100
      Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-04 02:53 -0700
        Re: Baby X Keith Thompson <kst-u@mib.org> - 2013-08-04 14:34 -0700
          Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-05 04:36 -0700
            Re: Baby X Keith Thompson <kst-u@mib.org> - 2013-08-05 08:04 -0700
            Re: Baby X Ian Collins <ian-news@hotmail.com> - 2013-08-06 08:25 +1200
              Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-06 04:38 -0700
                Re: Baby X Ian Collins <ian-news@hotmail.com> - 2013-08-07 07:19 +1200
                Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-06 12:38 -0700
                Re: Baby X Ian Collins <ian-news@hotmail.com> - 2013-08-07 07:49 +1200
                Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-06 15:17 -0700
                Re: Baby X Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-08-07 00:29 +0100
                Re: Baby X Ian Collins <ian-news@hotmail.com> - 2013-08-07 13:45 +1200
                Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-07 03:22 -0700
                Re: Baby X James Kuyper <jameskuyper@verizon.net> - 2013-08-07 06:36 -0400
                Re: Baby X Dr Nick <nospam-4@temporary-address.org.uk> - 2013-08-10 20:04 +0100
                Re: Baby X Kelsey Bjarnason <kbjarnason@gmail.com> - 2013-08-09 17:28 +0000
                Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-09 12:43 -0700
                Re: Baby X glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2013-08-09 20:01 +0000
                [OT] Re: Baby X Eric Sosman <esosman@comcast-dot-net.invalid> - 2013-08-09 16:30 -0400
                Re: Baby X Keith Thompson <kst-u@mib.org> - 2013-08-09 14:12 -0700
                Re: Baby X Dr Nick <nospam-4@temporary-address.org.uk> - 2013-08-10 20:11 +0100
                Re: Baby X Robert Wessel <robertwessel2@yahoo.com> - 2013-08-10 14:41 -0500
                Re: Baby X James Kuyper <jameskuyper@verizon.net> - 2013-08-10 21:34 -0400
                Re: Baby X Dr Nick <nospam-4@temporary-address.org.uk> - 2013-08-11 11:02 +0100
                Re: Baby X James Kuyper <jameskuyper@verizon.net> - 2013-08-11 12:54 -0400
                Re: Baby X Richard Damon <Richard@Damon-Family.org> - 2013-08-11 13:51 -0400
                Re: Baby X James Kuyper <jameskuyper@verizon.net> - 2013-08-11 14:10 -0400
                Re: Baby X Richard Damon <Richard@Damon-Family.org> - 2013-08-11 14:43 -0400
                Re: Baby X Keith Thompson <kst-u@mib.org> - 2013-08-11 14:03 -0700
                Re: Baby X Richard Damon <Richard@Damon-Family.org> - 2013-08-11 17:57 -0400
                Re: Baby X Keith Thompson <kst-u@mib.org> - 2013-08-11 18:37 -0700
                Re: Baby X glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2013-08-12 04:12 +0000
                Re: Baby X Dr Nick <nospam-4@temporary-address.org.uk> - 2013-08-12 07:42 +0100
                Re: Baby X Keith Thompson <kst-u@mib.org> - 2013-08-12 09:10 -0700
                Re: Baby X Philip Lantz <prl@canterey.us> - 2013-08-17 22:31 -0700
                Re: Baby X James Kuyper <jameskuyper@verizon.net> - 2013-08-18 14:50 -0400
                Re: Baby X Ike Naar <ike@iceland.freeshell.org> - 2013-08-18 20:15 +0000
                Re: Baby X James Kuyper <jameskuyper@verizon.net> - 2013-08-18 16:30 -0400
                Re: Baby X Ike Naar <ike@iceland.freeshell.org> - 2013-08-18 21:03 +0000
                Re: Baby X Ian Collins <ian-news@hotmail.com> - 2013-08-20 13:09 +1200
                Re: Baby X Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2013-08-20 12:24 +0300
                Re: Baby X Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-08-20 13:11 +0100
                Re: Baby X Keith Thompson <kst-u@mib.org> - 2013-08-20 08:33 -0700
                Re: Baby X Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2013-08-23 11:32 +0300
                Re: Baby X Ian Collins <ian-news@hotmail.com> - 2013-08-21 08:01 +1200
                Re: Baby X Keith Thompson <kst-u@mib.org> - 2013-08-11 13:57 -0700
                Re: Baby X James Kuyper <jameskuyper@verizon.net> - 2013-08-10 21:29 -0400
                Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-10 22:04 -0700
                Re: Baby X Ike Naar <ike@iceland.freeshell.org> - 2013-08-09 20:16 +0000
                Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-09 15:29 -0700
                Re: Baby X Ike Naar <ike@iceland.freeshell.org> - 2013-08-10 05:45 +0000
                Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-10 03:18 -0700
                Re: Baby X Ike Naar <ike@iceland.freeshell.org> - 2013-08-10 17:02 +0000
                Re: Baby X Ike Naar <ike@ukato.freeshell.org> - 2013-08-06 21:00 +0000
                Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-06 15:07 -0700
        Re: Baby X Ian Collins <ian-news@hotmail.com> - 2013-08-05 09:42 +1200
      Re: Baby X Roberto Waltman <usenet@rwaltman.com> - 2013-08-04 14:46 -0400
    Re: Baby X falk@rahul.net (Edward A. Falk) - 2013-08-15 03:02 +0000
      Re: Baby X falk@rahul.net (Edward A. Falk) - 2013-08-15 03:23 +0000
        Re: Baby X Malcolm McLean <malcolm.mclean5@btinternet.com> - 2013-08-15 06:09 -0700

csiph-web