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


Groups > comp.lang.c > #120104

Re: Set the result of void function

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Set the result of void function
Date 2017-09-20 08:50 -0700
Organization None to speak of
Message-ID <lnk20t5pzk.fsf@kst-u.example.com> (permalink)
References <fafcddea-dda4-4e4e-8475-496c0e4bfcf0@googlegroups.com> <osgwB.770836$uh.764880@fx28.am4> <optr59$506$1@dont-email.me>

Show all headers | View raw


David Brown <david.brown@hesbynett.no> writes:
[...]
> If you have a non-void function like "int F(void)", then a "return"
> without an expression is a constraint violation - compilers are allowed
> to guess what you mean by it, or to complain about it.

Conforming compilers are allowed (but not required) to guess what you
mean, and are *required* to complain about it.  (Good compilers, IMHO,
will reject it with a fatal error message.)

>                                                         Falling off the
> end of a non-void function is allowed, but if you use the result
> "returned" then it is undefined behaviour.  So you are allowed to write:
>
> double square_root(double x, bool * valid) {
> 	if (x >= 0) {
> 		*valid = true;
> 		return sqrt(x);
> 	}
> 	*valid = false;
> }
>
> void print_square_root(double x) {
> 	bool valid;
> 	double y = square_root(y, &valid);
> 	if (valid) {
> 		printf("Square root of %g is %g\n", x, y);
> 	} else {
> 		printf("You are just imagining that %g has a square root\n", x);
> 	}
> }

I believe the behavior is undefined.  The standard says the behavior is
undefined if the value "is used by the caller".  It's not 100% clear
what "used" means, but I'd say that the caller uses the result by
storing it in y.  (And you meant to pass x, not y, as the first argument
to square_root().)

[...]

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

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


Thread

Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-19 14:23 -0700
  Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-19 14:38 -0700
    Re: Set the result of void function gordonb.tfand@burditt.org (Gordon Burditt) - 2017-09-19 17:16 -0500
    Re: Set the result of void function "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-09-20 00:39 +0200
      Re: Set the result of void function James Kuyper <jameskuyper@verizon.net> - 2017-09-19 22:06 -0400
        Re: Set the result of void function "Pascal J. Bourguignon" <pjb@informatimago.com> - 2017-09-20 06:51 +0200
          Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-20 10:55 +0100
            Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-20 12:11 +0100
            Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 07:17 -0700
          Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-20 11:28 +0100
          Re: Set the result of void function mark.bluemel@gmail.com - 2017-09-20 03:30 -0700
            Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 06:53 -0700
              Re: Set the result of void function Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-09-21 03:50 -0500
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-21 11:00 +0100
                Re: Set the result of void function scott@slp53.sl.home (Scott Lurndal) - 2017-09-21 12:39 +0000
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-21 14:12 +0100
                Re: Set the result of void function scott@slp53.sl.home (Scott Lurndal) - 2017-09-21 13:51 +0000
                Re: Set the result of void function Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-09-21 08:36 -0600
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-21 17:51 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-21 10:06 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 08:51 +0200
                Plunging innocent people into poverty (Was: Set the result of void function) gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-23 09:31 +0000
                Re: Plunging innocent people into poverty (Was: Set the result of void function) David Brown <david.brown@hesbynett.no> - 2017-09-23 12:09 +0200
                Re: Plunging innocent people into poverty (Was: Set the result of void function) gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-23 10:25 +0000
                Re: Plunging innocent people into poverty Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2017-09-23 10:43 -0600
                Re: Plunging innocent people into poverty supercat@casperkitty.com - 2017-09-23 10:41 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 09:37 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-22 11:27 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-22 14:42 +0200
                Re: Set the result of void function Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-09-24 12:09 +0000
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 08:31 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 03:52 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 13:25 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 04:58 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 14:20 +0200
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 13:44 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 15:09 +0200
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 05:44 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 05:58 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 15:15 +0200
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 06:46 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-25 16:01 +0200
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 07:18 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 07:55 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 08:49 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 09:21 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-25 09:51 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 21:57 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 15:03 -0700
                Re: Set the result of void function Öö Tiib <ootiib@hot.ee> - 2017-09-25 21:34 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-26 04:28 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-27 08:26 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-27 11:48 -0400
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 08:54 +0200
                Re: Set the result of void function gordonb.iddsu@burditt.org (Gordon Burditt) - 2017-09-28 23:33 -0500
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 09:15 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 17:50 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 10:35 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-27 18:47 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-27 10:52 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 11:10 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:10 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 11:06 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 20:01 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 12:26 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 20:38 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 13:00 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 21:54 +0100
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-27 14:12 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 14:34 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-27 23:16 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 16:09 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 01:12 +0100
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 02:03 +0100
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-28 17:31 +1300
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:55 +0200
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-28 21:00 +1300
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 10:48 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 13:20 +0200
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 11:29 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-27 20:27 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:30 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-29 19:45 +0100
                Re: Set the result of void function Jerry Stuckle <jstucklex@attglobal.net> - 2017-09-29 14:49 -0400
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-27 15:07 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 09:42 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 13:55 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 17:22 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:14 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 20:13 +0200
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:42 +0100
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-28 09:14 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:25 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 20:17 +0200
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 17:39 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 10:10 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 19:05 +0100
                Re: Set the result of void function "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2017-09-28 14:20 -0400
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-29 07:52 +1300
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 11:59 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-28 18:50 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 19:47 +0100
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 21:57 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 16:14 -0400
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 13:17 -0700
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 21:23 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 13:55 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:50 +0100
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 13:57 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-28 23:18 +0200
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 17:38 -0400
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 15:54 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-29 08:59 +0200
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:43 -0700
                Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-29 10:43 +0200
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-29 07:43 -0700
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-30 19:21 +0100
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-30 19:45 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 13:31 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 13:41 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:07 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 16:25 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 18:45 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 19:54 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-28 20:51 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-28 22:39 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 09:16 -0700
                Re: Set the result of void function gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-29 16:17 +0000
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 11:05 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 11:23 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-29 12:15 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:04 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 16:44 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-30 10:04 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-30 10:33 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 11:26 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:03 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 09:44 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 11:15 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 11:35 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:11 -0700
                Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-29 16:14 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-30 08:55 -0700
                Re: Set the result of void function jameskuyper@verizon.net - 2017-09-29 11:36 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-29 12:05 +0100
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-29 12:17 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-29 09:15 -0700
                Re: Set the result of void function Ian Collins <ian-news@hotmail.com> - 2017-09-29 09:42 +1300
                Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-28 21:55 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 14:12 -0700
                Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-28 17:22 -0400
                Re: Set the result of void function Gareth Owen <gwowen@gmail.com> - 2017-09-29 19:50 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 09:00 -0700
                Re: Set the result of void function supercat@casperkitty.com - 2017-09-28 09:35 -0700
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-28 10:57 -0700
                Re: Set the result of void function Thiago Adams <thiago.adams@gmail.com> - 2017-09-25 10:35 -0700
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 06:57 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 16:32 +0100
                Re: Set the result of void function Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2017-09-25 08:43 -0700
                Re: Set the result of void function Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-09-25 22:12 +0100
                Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-25 09:03 -0700
                Re: Set the result of void function Jorgen Grahn <grahn+nntp@snipabacken.se> - 2017-09-25 14:17 +0000
          Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-20 11:32 -0400
        Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 01:50 -0700
          Re: Set the result of void function David Kleinecke <dkleinecke@gmail.com> - 2017-09-20 15:56 -0700
  Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-19 23:01 +0100
    Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-20 15:40 +0200
      Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-20 08:50 -0700
        Re: Set the result of void function David Brown <david.brown@hesbynett.no> - 2017-09-20 22:52 +0200
          Re: Set the result of void function supercat@casperkitty.com - 2017-09-20 15:04 -0700
    Re: Set the result of void function supercat@casperkitty.com - 2017-09-20 07:39 -0700
  Re: Set the result of void function jameskuyper@verizon.net - 2017-09-19 15:18 -0700
    Re: Set the result of void function bartc <bc@freeuk.com> - 2017-09-20 01:21 +0100
      Re: Set the result of void function jameskuyper@verizon.net - 2017-09-19 19:40 -0700
  Re: Set the result of void function rockbrentwood@gmail.com - 2017-09-19 16:36 -0700
    Re: Set the result of void function James Kuyper <jameskuyper@verizon.net> - 2017-09-19 22:13 -0400
    Re: Set the result of void function gazelle@shell.xmission.com (Kenny McCormack) - 2017-09-22 01:48 +0000
  Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-19 19:36 -0700
  Re: Set the result of void function mark.bluemel@gmail.com - 2017-09-20 01:00 -0700
    Re: Set the result of void function fir <profesor.fir@gmail.com> - 2017-09-20 02:01 -0700
  Re: Set the result of void function Keith Thompson <kst-u@mib.org> - 2017-09-20 08:36 -0700
  Re: Set the result of void function "James R. Kuyper" <jameskuyper@verizon.net> - 2017-09-20 11:36 -0400
  Re: Set the result of void function John Bode <jfbode1029@gmail.com> - 2017-09-20 15:30 -0700

csiph-web