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


Groups > comp.lang.c > #399456 > unrolled thread

this girl calls c ugly

Started byfir <profesor.fir@gmail.com>
First post2026-05-27 19:53 +0200
Last post2026-05-30 11:18 +0200
Articles 20 on this page of 346 — 21 participants

Back to article view | Back to comp.lang.c


Contents

  this girl calls c ugly fir <profesor.fir@gmail.com> - 2026-05-27 19:53 +0200
    Re: this girl calls c ugly fir <profesor.fir@gmail.com> - 2026-05-27 20:15 +0200
      Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-27 18:49 -0500
        Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-28 04:53 +0000
          Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-28 02:35 -0500
            Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-28 23:32 +0000
              Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-28 20:07 -0500
          Re: this girl calls c ugly Bonita Montero <Bonita.Montero@gmail.com> - 2026-05-28 11:48 +0200
        Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-28 09:18 +0200
          Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-28 04:57 -0500
            Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-28 23:35 +0000
            Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 09:52 +0200
              Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-29 05:20 -0500
                Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-29 13:22 +0200
                  Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-29 15:16 -0500
                    Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-30 13:52 +0200
                      Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-30 14:40 +0200
                        Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-30 16:36 +0200
                      Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-30 15:48 -0500
                        Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 11:14 +0200
                          Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-31 13:25 -0500
                            Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 22:14 +0200
                Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 15:22 +0200
                Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-30 03:49 +0000
          Re: this girl calls c ugly "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-05-28 12:47 -0700
            Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 09:56 +0200
              Re: this girl calls c ugly "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-05-29 11:00 -0700
        Re: this girl calls c ugly fir <profesor.fir@gmail.com> - 2026-05-28 17:12 +0200
          Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-28 14:07 -0500
            Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-28 23:54 +0000
              Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 10:02 +0200
                Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 12:19 +0100
                  Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 14:46 +0200
                    Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 14:22 +0100
                      Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 17:15 +0200
                        Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-05-29 15:59 +0000
                          Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 17:12 +0100
                            Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 18:48 +0200
                              Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 19:09 +0100
                                Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 22:00 +0200
                                  Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 22:14 +0100
                            Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-29 12:09 -0700
                        Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 17:05 +0100
                          Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 18:34 +0200
                      Re: this girl calls c ugly tTh <tth@none.invalid> - 2026-05-29 19:29 +0200
                        Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 18:53 +0100
                          Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-29 12:28 -0700
                            Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 20:49 +0100
                              Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 22:03 +0200
                              Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-29 13:56 -0700
                                Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 22:54 +0100
                                  Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-29 15:52 -0700
                                    Re: this girl calls c ugly James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-05-29 20:31 -0400
                                      Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-30 02:03 +0100
                                        Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-29 19:02 -0700
                                          Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-30 12:12 +0100
                                  Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-05-30 12:29 +0000
                                    Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-30 13:56 +0100
                                      Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-30 16:43 -0700
                                        Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-31 03:37 +0200
                                          Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-30 19:53 -0700
                                            Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-02 12:16 +0200
                                          Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 11:47 +0200
                                            Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-02 12:55 +0200
                                        Re: this girl calls c ugly Richard Harnden <richard.nospam@gmail.invalid> - 2026-05-31 09:12 +0100
                                          Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 11:49 +0200
                                            Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-31 11:10 +0100
                                              Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 13:18 +0200
                                                Re: this girl calls c ugly James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-05-31 10:24 -0400
                                                  Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 17:35 +0200
                                                    Re: this girl calls c ugly James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-05-31 12:46 -0400
                                                      Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 22:24 +0200
                                                        Re: this girl calls c ugly James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-05-31 18:26 -0400
                                                          Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-01 08:28 +0200
                                                    Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-31 15:54 -0700
                                                      Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-01 08:39 +0200
                                                        Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-01 02:33 -0700
                                                      Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-02 11:48 +0200
                                                        Re: this girl calls c ugly James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-06-02 06:37 -0400
                                                        Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-02 05:06 -0700
                                                          Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-02 16:28 +0000
                                                            Re: Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-04 03:37 -0700
                                                              Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-04 16:31 +0000
                                                                Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-04 13:36 -0700
                                                                  Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-04 23:49 +0000
                                                                    Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-04 18:04 -0700
                                                                      Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-06 03:10 +0000
                                                                        Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-05 23:50 -0700
                                                                          Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-08 02:20 +0000
                                                                            Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-08 12:39 -0700
                                                                              Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-08 23:15 +0000
                                                                                Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-08 18:51 -0700
                                                                                  Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-09 09:46 +0000
                                                                                    Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-09 15:07 -0700
                                                                            Re: Constants and undefined behavior antispam@fricas.org (Waldek Hebisch) - 2026-06-09 01:25 +0000
                                                                              Re: Constants and undefined behavior James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-06-09 18:29 -0400
                                                                                Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-09 16:01 -0700
                                                                                  Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-10 12:36 +0000
                                                                              Re: Constants and undefined behavior Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-11 16:49 +0200
                                                                                Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-11 15:20 +0000
                                                                                  Re: Constants and undefined behavior Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-11 18:08 +0200
                                                                                Re: Constants and undefined behavior antispam@fricas.org (Waldek Hebisch) - 2026-06-11 16:30 +0000
                                                                                  Re: Constants and undefined behavior Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-11 20:52 +0200
                                                                      Re: Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-06 15:47 -0700
                                                                        Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-06 16:36 -0700
                                                                          Re: Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-06 16:43 -0700
                                                                            Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-06 17:41 -0700
                                                                    Re: Constants and undefined behavior Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-05 10:41 +0200
                                                                      Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-05 10:49 -0700
                                                                      Re: Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-06 16:15 -0700
                                                                  Re: Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-06 18:06 -0700
                                                                    Re: Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-07 22:34 -0700
                                                                Re: Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-08 23:05 -0700
                                                                  Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-09 10:19 +0000
                                                                    Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-09 15:12 -0700
                                                                      Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-10 14:37 +0000
                                                                        Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-10 18:30 +0000
                                                                          Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-10 14:55 -0700
                                                                            Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-10 23:32 +0000
                                                                        Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-10 14:47 -0700
                                                                          Re: Constants and undefined behavior David Brown <david.brown@hesbynett.no> - 2026-06-11 08:56 +0200
                                                                            Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-11 11:38 +0000
                                                                              Re: Constants and undefined behavior David Brown <david.brown@hesbynett.no> - 2026-06-11 14:05 +0200
                                                                              Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-11 15:38 -0700
                                                                                Re: Constants and undefined behavior scott@slp53.sl.home (Scott Lurndal) - 2026-06-11 23:07 +0000
                                                                            Re: Constants and undefined behavior Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-11 17:34 +0200
                                                                            Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-11 13:29 -0700
                                                                        Re: Constants and undefined behavior Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-11 17:45 +0200
                                                                    Re: Constants and undefined behavior Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-10 15:11 -0700
                                                                      Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-10 22:44 +0000
                                                                        Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-10 16:19 -0700
                                                                          Re: Constants and undefined behavior cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-11 11:50 +0000
                                                                            Re: Constants and undefined behavior Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-11 16:28 -0700
                                                        Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-02 05:35 -0700
                                                          Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-02 06:29 -0700
                                                            Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-02 16:10 +0200
                                                            Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-02 15:29 -0700
                                                              Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-05 06:41 -0700
                                                                Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-05 11:24 -0700
                                                                  Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-08 08:35 -0700
                                                                    Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-08 17:33 +0000
                                                                      Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-09 00:54 -0700
                                                                        Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-09 10:08 +0000
                                                                    Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-08 13:40 -0700
                                                                  Meaning of "expression" Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-08 14:05 -0700
                                                                    Expression statements (was Re: Meaning of "expression") Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-09 15:17 +0200
                                                                      Re: Expression statements (was Re: Meaning of "expression") Bart <bc@freeuk.com> - 2026-06-09 14:53 +0100
                                                                        Re: Expression statements (was Re: Meaning of "expression") Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-09 16:30 +0200
                                                                          Re: Expression statements (was Re: Meaning of "expression") David Brown <david.brown@hesbynett.no> - 2026-06-09 17:13 +0200
                                                                            Re: Expression statements (was Re: Meaning of "expression") Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-09 15:34 -0700
                                                                              Re: Expression statements (was Re: Meaning of "expression") David Brown <david.brown@hesbynett.no> - 2026-06-10 09:04 +0200
                                                                                Re: Expression statements (was Re: Meaning of "expression") Bart <bc@freeuk.com> - 2026-06-10 11:10 +0100
                                                                                  Re: Expression statements (was Re: Meaning of "expression") David Brown <david.brown@hesbynett.no> - 2026-06-10 13:29 +0200
                                                                                Re: Expression statements (was Re: Meaning of "expression") Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-10 03:17 -0700
                                                                                  Re: Expression statements (was Re: Meaning of "expression") David Brown <david.brown@hesbynett.no> - 2026-06-10 13:43 +0200
                                                                                Re: Expression statements (was Re: Meaning of "expression") Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-10 14:08 -0700
                                                                                  Re: Expression statements (was Re: Meaning of "expression") David Brown <david.brown@hesbynett.no> - 2026-06-11 09:10 +0200
                                                                                Re: Expression statements (was Re: Meaning of "expression") Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-11 20:29 +0200
                                                                              Re: Expression statements (was Re: Meaning of "expression") Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-11 20:12 +0200
                                                                                Re: Expression statements (was Re: Meaning of "expression") James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-06-11 15:13 -0400
                                                                                  Re: Expression statements (was Re: Meaning of "expression") Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-12 00:37 +0200
                                                                                    Re: Expression statements (was Re: Meaning of "expression") scott@slp53.sl.home (Scott Lurndal) - 2026-06-11 23:05 +0000
                                                                                      Re: Expression statements (was Re: Meaning of "expression") Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-12 01:18 +0200
                                                                        Re: Expression statements (was Re: Meaning of "expression") tTh <tth@none.invalid> - 2026-06-09 19:27 +0200
                                                                          Re: Expression statements (was Re: Meaning of "expression") Bart <bc@freeuk.com> - 2026-06-09 19:19 +0100
                                                                      Re: Expression statements (was Re: Meaning of "expression") Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-09 15:22 -0700
                                                                Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-06 03:22 +0000
                                                                  Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-05 23:56 -0700
                                                                    Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-07 13:37 +0000
                                                                      Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-07 15:09 -0700
                                                                        Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-08 02:33 +0000
                                                                  Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-08 00:16 -0700
                                                                    Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-08 12:41 +0000
                                                                      Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-08 17:37 +0000
                                                                      Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-09 16:05 +0200
                                                      Re: this girl calls c ugly "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-06-02 13:59 -0700
                                              Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-02 13:05 +0000
                                                Parentheses (was: this girl calls c ugly) Bart <bc@freeuk.com> - 2026-06-02 14:38 +0100
                                                  Re: Parentheses (was: this girl calls c ugly) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-02 15:19 +0000
                                                  Re: Parentheses antispam@fricas.org (Waldek Hebisch) - 2026-06-03 22:30 +0000
                                                    Re: Parentheses Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-03 16:24 -0700
                                                      Re: Parentheses antispam@fricas.org (Waldek Hebisch) - 2026-06-04 02:03 +0000
                                                    Re: Parentheses Bart <bc@freeuk.com> - 2026-06-04 01:12 +0100
                                                      Re: Parentheses antispam@fricas.org (Waldek Hebisch) - 2026-06-04 01:58 +0000
                                                        Re: Parentheses Bart <bc@freeuk.com> - 2026-06-04 11:37 +0100
                                                      Re: Parentheses cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-04 10:51 +0000
                                                        Re: Parentheses Bart <bc@freeuk.com> - 2026-06-04 12:47 +0100
                                                          Re: Parentheses Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-04 14:57 +0200
                                                          Re: Parentheses cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-04 14:31 +0000
                                                [OT] Fancy graphics (was Re: this girl calls c ugly) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-02 15:54 +0200
                                                  Re: [OT] Fancy graphics (was Re: this girl calls c ugly) Bart <bc@freeuk.com> - 2026-06-02 15:19 +0100
                                                  Re: [OT] Fancy graphics (was Re: this girl calls c ugly) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-02 15:19 +0000
                                                    Re: [OT] Fancy graphics (was Re: this girl calls c ugly) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-02 17:39 +0200
                                                      Re: [OT] Fancy graphics (was Re: this girl calls c ugly) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-02 16:36 +0000
                                                        Re: [OT] Fancy graphics (was Re: this girl calls c ugly) scott@slp53.sl.home (Scott Lurndal) - 2026-06-02 21:33 +0000
                                                          Re: [OT] Fancy graphics (was Re: this girl calls c ugly) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-06-02 14:43 -0700
                                                    Re: [OT] Fancy graphics (was Re: this girl calls c ugly) ram@zedat.fu-berlin.de (Stefan Ram) - 2026-06-02 17:08 +0000
                                                      Re: [OT] Fancy graphics (was Re: this girl calls c ugly) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-02 19:19 +0000
                                                      Re: [OT] Fancy graphics (was Re: this girl calls c ugly) Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-06-04 00:11 +0000
                                                    Re: [OT] Fancy graphics (was Re: this girl calls c ugly) Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-02 15:39 -0700
                                                      Re: [OT] Fancy graphics (was Re: this girl calls c ugly) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-03 13:14 +0000
                                                Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-02 15:10 +0000
                                                  Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-02 15:31 +0000
                                            Re: this girl calls c ugly James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-05-31 10:15 -0400
                                              Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 16:29 +0200
                                          Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-31 03:45 -0700
                                            Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-31 04:02 -0700
                                          Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-05-31 09:04 -0700
                                            Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-31 18:11 +0100
                                              Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-05-31 19:34 +0000
                                              Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-05-31 19:10 -0700
                                                Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-01 11:12 +0100
                                                  Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-01 12:36 +0200
                                                  Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-01 14:26 -0700
                                                  Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-04 02:34 -0700
                                                    Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-04 12:40 +0100
                                                      Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-04 14:35 +0200
                                                        Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-04 14:18 +0100
                                                          Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-04 15:47 +0200
                                                            Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-04 15:57 +0200
                                                          Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-04 16:27 +0200
                                                            Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-04 16:46 +0100
                                                              Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-04 20:15 +0200
                                                              Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-04 20:54 +0200
                                                                Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-04 20:29 +0100
                                                                  Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-04 14:06 -0700
                                                                    Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-04 22:47 +0100
                                                                      Famous (hopefully last) words [on this topic] Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-05 00:27 +0200
                                                                        Re: Famous (hopefully last) words [on this topic] Bad Post <invalid@invalid.invalid> - 2026-06-05 01:20 +0100
                                                                      Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-04 16:09 -0700
                                                                        Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-05 00:44 +0100
                                                                          Re: this girl calls c ugly "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-06-04 17:26 -0700
                                                                            Re: this girl calls c ugly antispam@fricas.org (Waldek Hebisch) - 2026-06-05 12:58 +0000
                                                                              Re: this girl calls c ugly "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-06-05 14:27 -0700
                                                                      Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-05 02:47 +0000
                                                                        Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-05 00:53 -0700
                                                                          Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-05 11:04 +0100
                                                                            Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-05 05:34 -0700
                                                                              Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-06 03:45 +0000
                                                                            Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-06 03:44 +0000
                                                                              Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-06 07:39 +0200
                                                                  Re: this girl calls c ugly "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-06-04 15:25 -0700
                                                                  Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-05 09:29 +0200
                                                                    Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-05 12:39 +0100
                                                                      Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-05 15:42 +0200
                                                                        Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-05 16:50 +0100
                                                                      Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-05 11:09 -0700
                                                                        Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-05 20:29 +0100
                                                            Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-04 16:18 +0000
                                                              Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-04 17:23 +0100
                                                                Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-04 16:47 +0000
                                                                  Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-04 19:57 +0100
                                                                    Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-04 20:34 +0000
                                                                      Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-04 22:28 +0100
                                                                        Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-04 21:58 +0000
                                                                        Re: this girl calls c ugly Richard Harnden <richard.nospam@gmail.invalid> - 2026-06-04 23:25 +0100
                                                                        Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-05 02:49 +0000
                                                              Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-04 19:47 +0200
                                                                Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-04 21:04 +0200
                                                                  Re: this girl calls c ugly Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2026-06-04 19:13 +0000
                                                                    Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-05 10:34 +0200
                                                                Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-04 12:11 -0700
                                                                Re: this girl calls c ugly James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-06-04 16:33 -0400
                                                                  Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-04 14:16 -0700
                                                                    Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-05 00:02 +0000
                                                                      Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-04 18:36 -0700
                                                                        Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-05 02:54 +0000
                                                                    Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-05 05:49 -0700
                                                                      Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-05 11:01 -0700
                                                                        Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-05 11:53 -0700
                                                              Re: this girl calls c ugly Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2026-06-04 18:45 +0000
                                                                Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-04 20:19 +0000
                                                                  Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-04 20:31 +0000
                                                                    Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-04 20:41 +0000
                                                                      Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-04 20:49 +0000
                                                                        Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-05 00:03 +0000
                                                                          Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-05 00:18 +0000
                                                                            Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-05 03:02 +0000
                                                                              Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-05 14:04 +0000
                                                                                Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-06 03:49 +0000
                                                                                  Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-06 15:13 +0000
                                                                                  Re: this girl calls c ugly scott@slp53.sl.home (Scott Lurndal) - 2026-06-06 17:53 +0000
                                                          Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-04 11:59 -0700
                                                        Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-04 15:21 +0200
                                                      Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-04 06:38 -0700
                                              Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-01 09:52 +0200
                                                Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-01 02:42 -0700
                                                  Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-01 12:50 +0200
                                                Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-01 11:47 +0100
                                                  Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-01 12:55 +0200
                                                  Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-01 14:39 -0700
                                                    Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-01 15:11 -0700
                                                      Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-02 08:41 +0200
                                                        Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-02 02:07 -0700
                                                          Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-02 11:38 +0200
                                                            Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-02 05:01 -0700
                                                              It is not futile to change the subject line (Was: this girl calls c ugly) gazelle@shell.xmission.com (Kenny McCormack) - 2026-06-02 12:39 +0000
                                                                Re: It is not futile to change the subject line (Was: this girl calls c ugly) gazelle@shell.xmission.com (Kenny McCormack) - 2026-06-02 12:42 +0000
                                                          Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-02 11:46 +0200
                                                            Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-02 11:09 +0100
                                                              Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-02 05:25 -0700
                                                                Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-02 14:20 +0100
                                                                Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-02 15:12 -0700
                                                          Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-02 04:16 -0700
                                                    Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-01 15:23 -0700
                                                      Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-06-01 16:06 -0700
                                                    Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-01 23:24 +0100
                                                      Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-06-02 11:35 +0200
                                                    Operator precedence in other (non-C, but "C-like") languages (Was: something about a girl) gazelle@shell.xmission.com (Kenny McCormack) - 2026-06-02 12:36 +0000
                                                Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-01 11:04 +0000
                                                  Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-01 14:04 +0200
                                                    Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-01 18:48 +0000
                                                      Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-01 21:04 +0100
                                                        Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-02 09:17 +0200
                                                      Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-02 09:09 +0200
                                                        Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-06-02 12:07 +0000
                                                          Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-06-02 14:37 +0200
                                                          Microcontroller software stacks (was Re: this girl calls c ugly) scott@slp53.sl.home (Scott Lurndal) - 2026-06-02 15:06 +0000
                                                      Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-06-04 03:58 -0700
                                                Re: this girl calls c ugly dave_thompson_2@comcast.net - 2026-06-06 19:02 -0400
                                      Re: this girl calls c ugly cross@spitfire.i.gajendra.net (Dan Cross) - 2026-05-31 19:11 +0000
                                    Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-05-31 16:08 -0700
                                      Re: this girl calls c ugly Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-05-31 16:32 -0700
                                        Re: this girl calls c ugly Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-05-31 17:12 -0700
                          Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-30 14:07 +0200
                  Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 18:10 +0200
                    Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 19:18 +0100
                      Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 22:17 +0200
                        Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-29 21:47 +0100
                    Re: this girl calls c ugly James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-05-29 15:57 -0400
                      Re: this girl calls c ugly Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-05-29 22:34 +0200
                  Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-29 23:18 +0000
                    Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-30 01:26 +0100
                      Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-30 04:25 +0000
                        Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-30 12:01 +0100
                          Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-31 00:29 +0000
                            Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-05-31 10:59 +0100
                              Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-06-01 00:33 +0000
                                Re: this girl calls c ugly Bart <bc@freeuk.com> - 2026-06-01 02:26 +0100
                            Re: this girl calls c ugly David Brown <david.brown@hesbynett.no> - 2026-05-31 13:24 +0200
            Re: this girl calls c ugly Bonita Montero <Bonita.Montero@gmail.com> - 2026-05-29 08:09 +0200
              Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-29 04:15 -0500
                Re: this girl calls c ugly Bonita Montero <Bonita.Montero@gmail.com> - 2026-05-29 14:58 +0200
                  Re: this girl calls c ugly BGB <cr88192@gmail.com> - 2026-05-30 01:04 -0500
              Re: this girl calls c ugly Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-05-29 23:20 +0000
                Re: this girl calls c ugly Bonita Montero <Bonita.Montero@gmail.com> - 2026-05-30 11:18 +0200

Page 7 of 18 — ← Prev page 1 … 5 6 [7] 8 9 … 18  Next page →


#399884 — Re: Constants and undefined behavior

FromDavid Brown <david.brown@hesbynett.no>
Date2026-06-11 08:56 +0200
SubjectRe: Constants and undefined behavior
Message-ID<110dm6p$17r3s$1@dont-email.me>
In reply to#399870
On 10/06/2026 23:47, Keith Thompson wrote:

> Right.  ("for (;;);" in the original program does not.)
> 
> Note that the C++ special rule applies only when the condition is
> equivalent to a constant `true` and the body of the loop is empty.
> An implementation can "assume" that any other loop will eventually
> finish.
> 
> The rule in C is (6.8.6.1p4):
> 
>      An iteration statement may be assumed by the implementation
>      to terminate if its controlling expression is not a constant
>      expression, and none of the following operations are performed
>      in its body, controlling expression or (in the case of a for
>      statement) its expression-3
>          — input/output operations
>          — accessing a volatile object
>          — synchronization or atomic operations.
> 
> `for (;;)` is treated as having a constant controlling expression.
> 
> This covers more cases than the C++ rule.
> 
> I dislike it for most of the same reasonss.  It should be phrased
> in terms of the permitted behavior of a program, not what an
> implementation is allowed to "assume".
> 
> In addition to that, I dislike the whole idea.  I think it's
> intended to enable optimizations, but it means that for this
> contrived program:
> 
> #include <stdio.h>
> int main(void) {
>      bool keep_going = true;
>      while (keep_going) {
>          keep_going = true;
>      }
>      puts("never reached");
> }
> 
> the implementation is allowed to "assume" that the loop eventually
> terminates.  It's not clear what permissions the implementation is being
> given if the assumption is violated.  I think the program could legally
> print "never reached", but if violating the assumption implies undefined
> behavior it could do anything.
> 
> A programmer could easily write a program similar to the above
> and think that the meaning is perfectly clear, have it behave very
> differently because of one obscure subclause in the standard.


The idea of all this is given in a footnote in the C standards - "This 
is intended to allow compiler transformations such as removal of empty 
loops even when termination cannot be proven."

The loop might originally have contained source code, but become empty 
through pre-processing, or from other compiler transformations (such as 
the compiler seeing that the "keep_going" variable is not volatile and 
its value is never used, so assignments to it can be elided, or moving 
other things outside the loop body).

A programmer /could/ write the "keep_going" loop you gave, and 
mistakenly believe it to be infinite.  But is it likely?  In my 
experience, infinite loops are generally very clearly written - either 
as "for (;;)" loops or "while (true)" loops - or they are the result of 
bugs in the code that accidentally run forever.  If the loop is 
accidentally infinite, the programmer will already be expecting it to 
run the code after the loop.

Equally, I don't think it is likely that compilers will often be able to 
use this rule to improve code generation - it would only help in a 
situation where the loop's controlling expression is too complicated for 
the compiler to be sure that it will terminate, but where the loop body 
ends up effectively empty.  I doubt if that turns up often in real code 
either.

So while I agree that this kind of thing can lead to curiosities and 
behaviour that seems counter-intuitive, and is popular with the "modern 
compilers are evil" crowd, I really do not see it as an issue in 
practice.  There are many other mistakes programmers can make, or UB 
that they hit accidentally - this is a drop in the ocean IMHO.


[toc] | [prev] | [next] | [standalone]


#399894 — Re: Constants and undefined behavior

Fromcross@spitfire.i.gajendra.net (Dan Cross)
Date2026-06-11 11:38 +0000
SubjectRe: Constants and undefined behavior
Message-ID<110e6nr$pug$1@reader1.panix.com>
In reply to#399884
In article <110dm6p$17r3s$1@dont-email.me>,
David Brown  <david.brown@hesbynett.no> wrote:
>On 10/06/2026 23:47, Keith Thompson wrote:
>
>> Right.  ("for (;;);" in the original program does not.)
>> 
>> Note that the C++ special rule applies only when the condition is
>> equivalent to a constant `true` and the body of the loop is empty.
>> An implementation can "assume" that any other loop will eventually
>> finish.
>> 
>> The rule in C is (6.8.6.1p4):
>> 
>>      An iteration statement may be assumed by the implementation
>>      to terminate if its controlling expression is not a constant
>>      expression, and none of the following operations are performed
>>      in its body, controlling expression or (in the case of a for
>>      statement) its expression-3
>>          — input/output operations
>>          — accessing a volatile object
>>          — synchronization or atomic operations.
>> 
>> `for (;;)` is treated as having a constant controlling expression.
>> 
>> This covers more cases than the C++ rule.
>> 
>> I dislike it for most of the same reasonss.  It should be phrased
>> in terms of the permitted behavior of a program, not what an
>> implementation is allowed to "assume".
>> 
>> In addition to that, I dislike the whole idea.  I think it's
>> intended to enable optimizations, but it means that for this
>> contrived program:
>> 
>> #include <stdio.h>
>> int main(void) {
>>      bool keep_going = true;
>>      while (keep_going) {
>>          keep_going = true;
>>      }
>>      puts("never reached");
>> }
>> 
>> the implementation is allowed to "assume" that the loop eventually
>> terminates.  It's not clear what permissions the implementation is being
>> given if the assumption is violated.  I think the program could legally
>> print "never reached", but if violating the assumption implies undefined
>> behavior it could do anything.
>> 
>> A programmer could easily write a program similar to the above
>> and think that the meaning is perfectly clear, have it behave very
>> differently because of one obscure subclause in the standard.
>
>The idea of all this is given in a footnote in the C standards - "This 
>is intended to allow compiler transformations such as removal of empty 
>loops even when termination cannot be proven."
>
>The loop might originally have contained source code, but become empty 
>through pre-processing, or from other compiler transformations (such as 
>the compiler seeing that the "keep_going" variable is not volatile and 
>its value is never used, so assignments to it can be elided, or moving 
>other things outside the loop body).

I suspect the original intent is as you said, to support removal
of "dead" loops where the body has been optimized away, or
excised using conditional compilation.  Something like,

    #ifdef DEBUG
    #define DOTHING true
    #else
    #define DOTHING false
    #endif

        ...
        for (int i = 0; i < n; i++) {
            if (DOTHING) {
                // Something complex here...    
            }
        }

If `DEBUG` is not defined in the preprocessor, the compiler has
license to elide the entire loop as part of dead code
elimination.

>A programmer /could/ write the "keep_going" loop you gave, and 
>mistakenly believe it to be infinite.  But is it likely?  In my 
>experience, infinite loops are generally very clearly written - either 
>as "for (;;)" loops or "while (true)" loops - or they are the result of 
>bugs in the code that accidentally run forever.  If the loop is 
>accidentally infinite, the programmer will already be expecting it to 
>run the code after the loop.
>
>Equally, I don't think it is likely that compilers will often be able to 
>use this rule to improve code generation - it would only help in a 
>situation where the loop's controlling expression is too complicated for 
>the compiler to be sure that it will terminate, but where the loop body 
>ends up effectively empty.  I doubt if that turns up often in real code 
>either.
>
>So while I agree that this kind of thing can lead to curiosities and 
>behaviour that seems counter-intuitive, and is popular with the "modern 
>compilers are evil" crowd, I really do not see it as an issue in 
>practice.  There are many other mistakes programmers can make, or UB 
>that they hit accidentally - this is a drop in the ocean IMHO.

As I understand it, primarily by reading the C++ problem report,
which covers both C and C++ for background, the idea is to
guarantee forward progress for programs that make use of
threads: consider cooperatively-scheduled green threads; a
programmer who inadvertantly creates an infinite loop shouldn't
be able to starve all threads for access to the CPU.

Personally, I don't think C should be in the business of doing
such things.  But it is what it is.

	- Dan C.

[toc] | [prev] | [next] | [standalone]


#399897 — Re: Constants and undefined behavior

FromDavid Brown <david.brown@hesbynett.no>
Date2026-06-11 14:05 +0200
SubjectRe: Constants and undefined behavior
Message-ID<110e8a8$1dh8v$2@dont-email.me>
In reply to#399894
On 11/06/2026 13:38, Dan Cross wrote:
> In article <110dm6p$17r3s$1@dont-email.me>,
> David Brown  <david.brown@hesbynett.no> wrote:
>> On 10/06/2026 23:47, Keith Thompson wrote:
>>
>>> Right.  ("for (;;);" in the original program does not.)
>>>
>>> Note that the C++ special rule applies only when the condition is
>>> equivalent to a constant `true` and the body of the loop is empty.
>>> An implementation can "assume" that any other loop will eventually
>>> finish.
>>>
>>> The rule in C is (6.8.6.1p4):
>>>
>>>       An iteration statement may be assumed by the implementation
>>>       to terminate if its controlling expression is not a constant
>>>       expression, and none of the following operations are performed
>>>       in its body, controlling expression or (in the case of a for
>>>       statement) its expression-3
>>>           — input/output operations
>>>           — accessing a volatile object
>>>           — synchronization or atomic operations.
>>>
>>> `for (;;)` is treated as having a constant controlling expression.
>>>
>>> This covers more cases than the C++ rule.
>>>
>>> I dislike it for most of the same reasonss.  It should be phrased
>>> in terms of the permitted behavior of a program, not what an
>>> implementation is allowed to "assume".
>>>
>>> In addition to that, I dislike the whole idea.  I think it's
>>> intended to enable optimizations, but it means that for this
>>> contrived program:
>>>
>>> #include <stdio.h>
>>> int main(void) {
>>>       bool keep_going = true;
>>>       while (keep_going) {
>>>           keep_going = true;
>>>       }
>>>       puts("never reached");
>>> }
>>>
>>> the implementation is allowed to "assume" that the loop eventually
>>> terminates.  It's not clear what permissions the implementation is being
>>> given if the assumption is violated.  I think the program could legally
>>> print "never reached", but if violating the assumption implies undefined
>>> behavior it could do anything.
>>>
>>> A programmer could easily write a program similar to the above
>>> and think that the meaning is perfectly clear, have it behave very
>>> differently because of one obscure subclause in the standard.
>>
>> The idea of all this is given in a footnote in the C standards - "This
>> is intended to allow compiler transformations such as removal of empty
>> loops even when termination cannot be proven."
>>
>> The loop might originally have contained source code, but become empty
>> through pre-processing, or from other compiler transformations (such as
>> the compiler seeing that the "keep_going" variable is not volatile and
>> its value is never used, so assignments to it can be elided, or moving
>> other things outside the loop body).
> 
> I suspect the original intent is as you said, to support removal
> of "dead" loops where the body has been optimized away, or
> excised using conditional compilation.  Something like,
> 
>      #ifdef DEBUG
>      #define DOTHING true
>      #else
>      #define DOTHING false
>      #endif
> 
>          ...
>          for (int i = 0; i < n; i++) {
>              if (DOTHING) {
>                  // Something complex here...
>              }
>          }
> 
> If `DEBUG` is not defined in the preprocessor, the compiler has
> license to elide the entire loop as part of dead code
> elimination.
> 

I don't know about "original intent" - I was quoting a footnote in the C 
standard, but I have not done any research like reading through the 
rationale documents.

>> A programmer /could/ write the "keep_going" loop you gave, and
>> mistakenly believe it to be infinite.  But is it likely?  In my
>> experience, infinite loops are generally very clearly written - either
>> as "for (;;)" loops or "while (true)" loops - or they are the result of
>> bugs in the code that accidentally run forever.  If the loop is
>> accidentally infinite, the programmer will already be expecting it to
>> run the code after the loop.
>>
>> Equally, I don't think it is likely that compilers will often be able to
>> use this rule to improve code generation - it would only help in a
>> situation where the loop's controlling expression is too complicated for
>> the compiler to be sure that it will terminate, but where the loop body
>> ends up effectively empty.  I doubt if that turns up often in real code
>> either.
>>
>> So while I agree that this kind of thing can lead to curiosities and
>> behaviour that seems counter-intuitive, and is popular with the "modern
>> compilers are evil" crowd, I really do not see it as an issue in
>> practice.  There are many other mistakes programmers can make, or UB
>> that they hit accidentally - this is a drop in the ocean IMHO.
> 
> As I understand it, primarily by reading the C++ problem report,
> which covers both C and C++ for background, the idea is to
> guarantee forward progress for programs that make use of
> threads: consider cooperatively-scheduled green threads; a
> programmer who inadvertantly creates an infinite loop shouldn't
> be able to starve all threads for access to the CPU.
> 
> Personally, I don't think C should be in the business of doing
> such things.  But it is what it is.
> 
> 	- Dan C.
> 

I agree there.  It is up to programmers to write useful programs - I 
don't think it makes sense for a language standard to say that programs 
have to either do something observable, or get out of the way and don't 
block something else from being useful.  But I have difficulty seeing 
that this rule in the C standards would make much real-world difference 
one way or the other.

[toc] | [prev] | [next] | [standalone]


#399919 — Re: Constants and undefined behavior

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-06-11 15:38 -0700
SubjectRe: Constants and undefined behavior
Message-ID<110fddl$1pooi$1@kst.eternal-september.org>
In reply to#399894
cross@spitfire.i.gajendra.net (Dan Cross) writes:
[...]
> I suspect the original intent is as you said, to support removal
> of "dead" loops where the body has been optimized away, or
> excised using conditional compilation.  Something like,
>
>     #ifdef DEBUG
>     #define DOTHING true
>     #else
>     #define DOTHING false
>     #endif
>
>         ...
>         for (int i = 0; i < n; i++) {
>             if (DOTHING) {
>                 // Something complex here...    
>             }
>         }
>
> If `DEBUG` is not defined in the preprocessor, the compiler has
> license to elide the entire loop as part of dead code
> elimination.

I think I see what you mean, but in this particular case the loop
can be proven to terminate unless `i` is modified in the body of
the loop, and a compiler can elide the entire loop anyway.

[...]

> As I understand it, primarily by reading the C++ problem report,
> which covers both C and C++ for background, the idea is to
> guarantee forward progress for programs that make use of
> threads: consider cooperatively-scheduled green threads; a
> programmer who inadvertantly creates an infinite loop shouldn't
> be able to starve all threads for access to the CPU.
>
> Personally, I don't think C should be in the business of doing
> such things.  But it is what it is.

I agree.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#399923 — Re: Constants and undefined behavior

Fromscott@slp53.sl.home (Scott Lurndal)
Date2026-06-11 23:07 +0000
SubjectRe: Constants and undefined behavior
Message-ID<ocHWR.151942$N9we.129907@fx16.iad>
In reply to#399919
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>cross@spitfire.i.gajendra.net (Dan Cross) writes:
>[...]
>> I suspect the original intent is as you said, to support removal
>> of "dead" loops where the body has been optimized away, or
>> excised using conditional compilation.  Something like,
>>
>>     #ifdef DEBUG
>>     #define DOTHING true
>>     #else
>>     #define DOTHING false
>>     #endif
>>
>>         ...
>>         for (int i = 0; i < n; i++) {
>>             if (DOTHING) {
>>                 // Something complex here...    
>>             }
>>         }
>>
>> If `DEBUG` is not defined in the preprocessor, the compiler has
>> license to elide the entire loop as part of dead code
>> elimination.
>
>I think I see what you mean, but in this particular case the loop
>can be proven to terminate unless `i` is modified in the body of

  ...unless 'i' or 'n' is modified in the body of

[toc] | [prev] | [next] | [standalone]


#399902 — Re: Constants and undefined behavior

FromJanis Papanagnou <janis_papanagnou+ng@hotmail.com>
Date2026-06-11 17:34 +0200
SubjectRe: Constants and undefined behavior
Message-ID<110ekic$1naub$6@dont-email.me>
In reply to#399884
On 2026-06-11 08:56, David Brown wrote:
> On 10/06/2026 23:47, Keith Thompson wrote:
>> [...]
>>
>> #include <stdio.h>
>> int main(void) {
>>      bool keep_going = true;
>>      while (keep_going) {
>>          keep_going = true;
>>      }
>>      puts("never reached");
>> }
>>
>> [...]
> 
> [...]
> 
> The loop might originally have contained source code, but become empty 
> through pre-processing, or from other compiler transformations (such as 
> the compiler seeing that the "keep_going" variable is not volatile and 
> its value is never used, so assignments to it can be elided, or moving 
> other things outside the loop body).
> 
> A programmer /could/ write the "keep_going" loop you gave, and 
> mistakenly believe it to be infinite.  But is it likely? 

I think we should not make any assumptions about the "creativity" of a
programmer ("C" or else). - Semantics should be well defined, and then
clear to the programmer.

> In my 
> experience, infinite loops are generally very clearly written - either 
> as "for (;;)" loops or "while (true)" loops - or they are the result of 
> bugs in the code that accidentally run forever.  If the loop is 
> accidentally infinite, the programmer will already be expecting it to 
> run the code after the loop.
> 
> [...]
> 
> So while I agree that this kind of thing can lead to curiosities and 
> behaviour that seems counter-intuitive, and is popular with the "modern 
> compilers are evil" crowd, I really do not see it as an issue in 
> practice.  There are many other mistakes programmers can make, or UB 
> that they hit accidentally - this is a drop in the ocean IMHO.

Languages shall be sensibly and clearly defined. For bad designs (or
bad standards) the language or standard should be blamed, and not the
critics badly and inappropriately despised as ''"modern compilers are
evil" crowd''. - Programmers are at the final end of the "food chain".
And there's a lot of horrible pits in the C-language where programmers
"made the mistake" to fall in; don't blame them, neither the ones who
silently suffer nor the ones who shout out.

Janis

[toc] | [prev] | [next] | [standalone]


#399912 — Re: Constants and undefined behavior

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-06-11 13:29 -0700
SubjectRe: Constants and undefined behavior
Message-ID<110f5qm$1nfih$1@kst.eternal-september.org>
In reply to#399884
David Brown <david.brown@hesbynett.no> writes:
[...]
> The idea of all this is given in a footnote in the C standards - "This
> is intended to allow compiler transformations such as removal of empty
> loops even when termination cannot be proven."
>
> The loop might originally have contained source code, but become empty
> through pre-processing, or from other compiler transformations (such
> as the compiler seeing that the "keep_going" variable is not volatile
> and its value is never used, so assignments to it can be elided, or
> moving other things outside the loop body).
>
> A programmer /could/ write the "keep_going" loop you gave, and
> mistakenly believe it to be infinite.  But is it likely?  In my
> experience, infinite loops are generally very clearly written - either
> as "for (;;)" loops or "while (true)" loops - or they are the result
> of bugs in the code that accidentally run forever.  If the loop is
> accidentally infinite, the programmer will already be expecting it to
> run the code after the loop.

How about a loop that has a non-constant condition, but that is
not expected to terminate in normal usage?

    while (! something_really_bad_happened()) {
        sleep(1);
    }
    self_destruct();

A compiler could "assume" that the loop terminates, even if
something_really_bad never happens, and that assumption could result in
a call to self_destruct().  There are probably better ways to do that,
but it's straightforward code with seemingly obvious semantics that
an implementation is permitted to make unwarrated assumptions about.

[...]

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#399903 — Re: Constants and undefined behavior

FromJanis Papanagnou <janis_papanagnou+ng@hotmail.com>
Date2026-06-11 17:45 +0200
SubjectRe: Constants and undefined behavior
Message-ID<110el6r$1nauc$7@dont-email.me>
In reply to#399864
On 2026-06-10 16:37, Dan Cross wrote:
>> [...]
> Here's a C version with the same behavior:
> 
> ```
> term% cat weird.c
> #include <stdio.h>
> 
> int
> main(void)
> {
>          for (unsigned int k = 0; k != 1; k += 2)
>                  ;
> 	return 0;
> }
> 
> void
> hello(void)
> {
>          printf("Hello, World!\n");
> }
> term% clang --version
> clang version 22.1.6
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
> term% clang -Wall -pedantic -O1 -std=c23 -o weird weird.c
> term% ./weird
> Hello, World!
> term%
> ```

Wow, that's really fascinating! (In a bad sense.)

And (in clang) just an effect of the '-O1' (as I notice).

I may have missed the "programming language design" wisdom of the
past decades. Back then we had the conception that "optimization"
is a method to transform a program to a _functionally equivalent_
code (one that is faster, requires less memory, or some such).

Janis

> [...]

[toc] | [prev] | [next] | [standalone]


#399872 — Re: Constants and undefined behavior

FromTim Rentsch <tr.17687@z991.linuxsc.com>
Date2026-06-10 15:11 -0700
SubjectRe: Constants and undefined behavior
Message-ID<86ldcm82ql.fsf@linuxsc.com>
In reply to#399815
cross@spitfire.i.gajendra.net (Dan Cross) writes:

> In article <86tsrc8d0b.fsf@linuxsc.com>,
> Tim Rentsch  <tr.17687@z991.linuxsc.com> wrote:
>[...]
>> The C standard doesn't need to say that, for example, a
>> function x() other than main(), whose name is never referenced,
>> will never be called.  If someone wants to establish that x() could
>> be called, there needs to be a chain of reasoning going through the
>> semantic descriptions given in the C standard, to show that a call
>> to x() could occur.
>
> Actually, no, a reference to a function is not necessary.  A
> couple of years ago, a well-publicized issue in a C++ compiler a
> couple of years ago was something along the lines of this:
> [...]

This is comp.lang.c.  My comments were only about C, and not
about C++.  But of course you already knew that.

[toc] | [prev] | [next] | [standalone]


#399873 — Re: Constants and undefined behavior

Fromcross@spitfire.i.gajendra.net (Dan Cross)
Date2026-06-10 22:44 +0000
SubjectRe: Constants and undefined behavior
Message-ID<110cpca$gl2$1@reader1.panix.com>
In reply to#399872
In article <86ldcm82ql.fsf@linuxsc.com>,
Tim Rentsch  <tr.17687@z991.linuxsc.com> wrote:
>cross@spitfire.i.gajendra.net (Dan Cross) writes:
>
>> In article <86tsrc8d0b.fsf@linuxsc.com>,
>> Tim Rentsch  <tr.17687@z991.linuxsc.com> wrote:
>>[...]
>>> The C standard doesn't need to say that, for example, a
>>> function x() other than main(), whose name is never referenced,
>>> will never be called.  If someone wants to establish that x() could
>>> be called, there needs to be a chain of reasoning going through the
>>> semantic descriptions given in the C standard, to show that a call
>>> to x() could occur.
>>
>> Actually, no, a reference to a function is not necessary.  A
>> couple of years ago, a well-publicized issue in a C++ compiler a
>> couple of years ago was something along the lines of this:
>> [...]
>
>This is comp.lang.c.  My comments were only about C, and not
>about C++.  But of course you already knew that.

I see you did not read the other messages in the (sub)thread,
but ok, here it is again, in C:

```
term% cat what.c
#include <stdio.h>
int main(void) { for (unsigned int k = 0; k != 1; k += 2); return 0; }
void hello(void) { printf("Hello, World!\n"); }
term% clang --version | sed 1q
clang version 22.1.6
term% clang -Wall -pedantic -pedantic-errors -O1 -std=c23 -o what what.c
what.c:2:58: warning: for loop has empty body [-Wempty-body]
    2 | int main(void) { for (unsigned int k = 0; k != 1; k += 2); return 0; }
      |                                                          ^
what.c:2:58: note: put the semicolon on a separate line to silence this warning
1 warning generated.
term% ./what
Hello, World!
term% 
```

	- Dan C.

[toc] | [prev] | [next] | [standalone]


#399874 — Re: Constants and undefined behavior

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-06-10 16:19 -0700
SubjectRe: Constants and undefined behavior
Message-ID<110cre9$13aa9$1@kst.eternal-september.org>
In reply to#399873
cross@spitfire.i.gajendra.net (Dan Cross) writes:
[...]
> I see you did not read the other messages in the (sub)thread,
> but ok, here it is again, in C:
>
> ```
> term% cat what.c
> #include <stdio.h>
> int main(void) { for (unsigned int k = 0; k != 1; k += 2); return 0; }
> void hello(void) { printf("Hello, World!\n"); }
> term% clang --version | sed 1q
> clang version 22.1.6
> term% clang -Wall -pedantic -pedantic-errors -O1 -std=c23 -o what what.c
> what.c:2:58: warning: for loop has empty body [-Wempty-body]
>     2 | int main(void) { for (unsigned int k = 0; k != 1; k += 2); return 0; }
>       |                                                          ^
> what.c:2:58: note: put the semicolon on a separate line to silence this warning
> 1 warning generated.
> term% ./what
> Hello, World!
> term% 
> ```

I see the same behavior.

The following largely repeats what I've written previously in
this thread.

Apparently the authors of clang decided that this statement in N3220
6.8.6.p4:

    An iteration statement may be assumed by the implementation to
    terminate if its controlling expression is not a constant
    expression, ...

means that a program that violates that assumption has undefined
behavior.  I intensely dislike both the rule and the way it's stated,
but I agree that the conclusion that the behavior is undefined is
a reasonable one.

Of course since the behavior is undefined, *anything* could happen.
I don't know what happened inside clang (or the minds of its
maintainers) that caused it to generate code that executes a
statement in the body of a function that's never called, but that's
just one of the infinitely many allowed behaviors.  A quick look at the
generated code indicates that there's no x86-64 "retq" instruction
for either main() or hello(), and apparently control falls through
from the end of main() to the body of hello().  That seems weird.

It might just be a bug (but not one that, as far as I can tell,
violates the C standard).

A function whose body contains a construct that would have undefined
behavior if the function were called (not the case here) does not
cause undefined behavior if there are no calls to the function.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#399896 — Re: Constants and undefined behavior

Fromcross@spitfire.i.gajendra.net (Dan Cross)
Date2026-06-11 11:50 +0000
SubjectRe: Constants and undefined behavior
Message-ID<110e7dc$s4$1@reader1.panix.com>
In reply to#399874
In article <110cre9$13aa9$1@kst.eternal-september.org>,
Keith Thompson  <Keith.S.Thompson+u@gmail.com> wrote:
>cross@spitfire.i.gajendra.net (Dan Cross) writes:
>[...]
>> I see you did not read the other messages in the (sub)thread,
>> but ok, here it is again, in C:
>>
>> ```
>> term% cat what.c
>> #include <stdio.h>
>> int main(void) { for (unsigned int k = 0; k != 1; k += 2); return 0; }
>> void hello(void) { printf("Hello, World!\n"); }
>> term% clang --version | sed 1q
>> clang version 22.1.6
>> term% clang -Wall -pedantic -pedantic-errors -O1 -std=c23 -o what what.c
>> what.c:2:58: warning: for loop has empty body [-Wempty-body]
>>     2 | int main(void) { for (unsigned int k = 0; k != 1; k += 2); return 0; }
>>       |                                                          ^
>> what.c:2:58: note: put the semicolon on a separate line to silence this warning
>> 1 warning generated.
>> term% ./what
>> Hello, World!
>> term% 
>> ```
>
>I see the same behavior.
>
>The following largely repeats what I've written previously in
>this thread.
>
>Apparently the authors of clang decided that this statement in N3220
>6.8.6.p4:
>
>    An iteration statement may be assumed by the implementation to
>    terminate if its controlling expression is not a constant
>    expression, ...
>
>means that a program that violates that assumption has undefined
>behavior.  I intensely dislike both the rule and the way it's stated,
>but I agree that the conclusion that the behavior is undefined is
>a reasonable one.

I think the behavior is technical "unspecified" in the sense of
the C standard, but yes, this is the important bit.  The
controlling expresion is not constant, and the loop doesn't meet
any of the other criteria set forth in sec 6.8.6 para 4 for,
therefore, the translator may assume it terminates (it is
unspecified whether or not it does; either behavior is correct.
GCC, for example, appears not to make the same assumption).

>Of course since the behavior is undefined, *anything* could happen.
>I don't know what happened inside clang (or the minds of its
>maintainers) that caused it to generate code that executes a
>statement in the body of a function that's never called, but that's
>just one of the infinitely many allowed behaviors.  A quick look at the
>generated code indicates that there's no x86-64 "retq" instruction
>for either main() or hello(), and apparently control falls through
>from the end of main() to the body of hello().  That seems weird.

Here's a slightly better version of `what.c` (that removes the
annoying "loop is body, move the semicolon to the next line"
warning):

```
#include <stdio.h>
int main(void) { unsigned int k = 0; while (k != 1) k += 2; return 0; }
void hello(void) { printf("Hello, World!\n"); }
```

I think the reasoning goes something like this: in optimization
phase $n$, the compiler determines that `k` can never be 1, and
thus the loop does not terminate, and therefore, `return 0;` is
inaccessible, so it's removed.  Then, in phase $n + k$, for
$k>0$, it applies the rules of sec 6.8.6 para 4, assumes that
the loop must terminate, and therefore can be removed, and
removes it.  The `return` is already gone.  So what you're left
with is an label that just cascades into whatever is next in
object code; that just happens to be `hello`.

>It might just be a bug (but not one that, as far as I can tell,
>violates the C standard).

It's known.  It was known when first reported a couple of years
ago in the C++ context, and I suspect they know about it now.  I
can ask someone who works on LLVM.  I suspect the reasoning will
be that this is important to guarantee forward progress, and
that they can't solve the halting problem, therefore such loops
can be removed.  If that causes your program to do something
weird, then, well, don't do that.

>A function whose body contains a construct that would have undefined
>behavior if the function were called (not the case here) does not
>cause undefined behavior if there are no calls to the function.

True, but irrelevant to the point I was making, which is that UB
can induce a "call" to a function, even without a reference to
it appearing in the source text.

	- Dan C.

[toc] | [prev] | [next] | [standalone]


#399925 — Re: Constants and undefined behavior

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-06-11 16:28 -0700
SubjectRe: Constants and undefined behavior
Message-ID<110fgbi$1qf9f$1@kst.eternal-september.org>
In reply to#399896
cross@spitfire.i.gajendra.net (Dan Cross) writes:
> In article <110cre9$13aa9$1@kst.eternal-september.org>,
> Keith Thompson  <Keith.S.Thompson+u@gmail.com> wrote:
>>cross@spitfire.i.gajendra.net (Dan Cross) writes:
>>[...]
>>> I see you did not read the other messages in the (sub)thread,
>>> but ok, here it is again, in C:
>>>
>>> ```
>>> term% cat what.c
>>> #include <stdio.h>
>>> int main(void) { for (unsigned int k = 0; k != 1; k += 2); return 0; }
>>> void hello(void) { printf("Hello, World!\n"); }
>>> term% clang --version | sed 1q
>>> clang version 22.1.6
>>> term% clang -Wall -pedantic -pedantic-errors -O1 -std=c23 -o what what.c
>>> what.c:2:58: warning: for loop has empty body [-Wempty-body]
>>>     2 | int main(void) { for (unsigned int k = 0; k != 1; k += 2); return 0; }
>>>       |                                                          ^
>>> what.c:2:58: note: put the semicolon on a separate line to silence this warning
>>> 1 warning generated.
>>> term% ./what
>>> Hello, World!
>>> term% 
>>> ```
>>
>>I see the same behavior.
>>
>>The following largely repeats what I've written previously in
>>this thread.
>>
>>Apparently the authors of clang decided that this statement in N3220
>>6.8.6.p4:
>>
>>    An iteration statement may be assumed by the implementation to
>>    terminate if its controlling expression is not a constant
>>    expression, ...
>>
>>means that a program that violates that assumption has undefined
>>behavior.  I intensely dislike both the rule and the way it's stated,
>>but I agree that the conclusion that the behavior is undefined is
>>a reasonable one.
>
> I think the behavior is technical "unspecified" in the sense of
> the C standard, but yes, this is the important bit.  The
> controlling expresion is not constant, and the loop doesn't meet
> any of the other criteria set forth in sec 6.8.6 para 4 for,
> therefore, the translator may assume it terminates (it is
> unspecified whether or not it does; either behavior is correct.
> GCC, for example, appears not to make the same assumption).

Why do you think the behavior is unspecified rather that undefined?

Unspecified behavior is defined as: "behavior, that results from
the use of an unspecified value, or other behavior upon which
this document provides two or more possibilities and imposes
no further requirements on which is chosen in any instance".
(Implementation-defined behavior differs from unspecified behavior
in that the implementation must document how the choice is made.)

What are the "two more more possibilities" in this case?

[SNIP]

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#399618

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-06-02 05:35 -0700
Message-ID<10vmimv$2tjoi$3@kst.eternal-september.org>
In reply to#399608
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
> On 2026-06-01 00:54, Keith Thompson wrote:
>>> [...]
>> Yes, a compiler can reduce (a + b) * 0 to just 0.  But it's not
>> required to do so, and (INT_MAX + 1) * 0 still has undefined
>> behavior.  Undefined behavior is determined by the rules of the
>> abstract machine *without* any adjustments permitted by the as-if
>> rule.
>
> This is something I really don't get in the actual C-logic...
>
> Using constants that can be determined at compile time is UB here,
> despite the '* 0' mathematically indicating an IMO clear semantics,
> but using variables is only UB possibly at runtime? And despite all
> that the latter might not even get triggered because it's probably
> optimized away? - I can't help, this sounds really crude.
>
> Is there any rationale from the _software designer_'s perspective?

In the abstract machine, every operator and subexpression is
evaluated (barring things like "||", "&&", and "?:").  (INT_MAX + 1)
has undefined behavior due to overflow, therefore any expression
that has (INT_MAX + 1) as a subexpression has undefined behavior.

Replacing (expr * 0) by 0 is an optimization, and optimizations
are *optional*.  A naive implementation could generate code that
peforms the addition and the muliplication by 0; if the addition
traps, it traps.

Note that in a context that requires a constant expression, overflow is
a constraint violation.  For example, a case label like:

    case (INT_MAX + 1) * 0:

must be diagnosed at compile time.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#399625

FromTim Rentsch <tr.17687@z991.linuxsc.com>
Date2026-06-02 06:29 -0700
Message-ID<86ecipcbqa.fsf@linuxsc.com>
In reply to#399618
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:

> Note that in a context that requires a constant expression, overflow is
> a constraint violation.  For example, a case label like:
>
>     case (INT_MAX + 1) * 0:
>
> must be diagnosed at compile time.

gcc disagrees with you.

[toc] | [prev] | [next] | [standalone]


#399628

FromDavid Brown <david.brown@hesbynett.no>
Date2026-06-02 16:10 +0200
Message-ID<10vmo8n$2ruaa$3@dont-email.me>
In reply to#399625
On 02/06/2026 15:29, Tim Rentsch wrote:
> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
> 
>> Note that in a context that requires a constant expression, overflow is
>> a constraint violation.  For example, a case label like:
>>
>>      case (INT_MAX + 1) * 0:
>>
>> must be diagnosed at compile time.
> 
> gcc disagrees with you.

My testing shows all versions of gcc that I tested on godbolt gave a 
warning, even without any options.  I don't believe that INT_MAX can 
have any type suffixes that would avoid the overflow.

What version of gcc and/or flags let that case label pass without a 
diagnostic?

(I don't know if Keith is correct about it being a constraint violation 
- I have not looked at the details there.)


[toc] | [prev] | [next] | [standalone]


#399652

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-06-02 15:29 -0700
Message-ID<10vnlgu$382un$2@kst.eternal-september.org>
In reply to#399625
Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>> Note that in a context that requires a constant expression, overflow is
>> a constraint violation.  For example, a case label like:
>>
>>     case (INT_MAX + 1) * 0:
>>
>> must be diagnosed at compile time.
>
> gcc disagrees with you.

What makes you think so?

$ cat c.c
#include <limits.h>
int main(void) {
    switch (0) {
        case (INT_MAX + 1) * 0:
            break;
    }
}
$ gcc -std=c17 -pedantic-errors -c c.c
c.c: In function ‘main’:
c.c:4:23: warning: integer overflow in expression of type ‘int’ results in ‘-2147483648’ [-Woverflow]
    4 |         case (INT_MAX + 1) * 0:
      |                       ^
c.c:4:9: error: overflow in constant expression [-Woverflow]
    4 |         case (INT_MAX + 1) * 0:
      |         ^~~~
$ 

But taking a closer look at the standard, I'm not 100% sure that the
language requires a diagnostic, though I think that's the intent.
The relevant constraint is:

    Each constant expression shall evaluate to a constant that is
    in the range of representable values for its type.

If I squint really hard, I can argue that the entire expression
has to be a constant expression, but it doesn't say that its
subexpressions are constant expressions -- and *if* INT_MAX +
1 evaluates to INT_MIN in the current implementation, then
(INT_MAX + 1) * 0 evaluates to 0 and therefore satisfies the
constraint.

But INT_MAX + 1 could legally trap, for example, and I don't believe
it was intended that a given expression can be a constant expression
or not depending on the vagaries of the behavior of an instance
of UB.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#399748

FromTim Rentsch <tr.17687@z991.linuxsc.com>
Date2026-06-05 06:41 -0700
Message-ID<86bjdpayv0.fsf@linuxsc.com>
In reply to#399652
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:

> Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
>
>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>
>>> Note that in a context that requires a constant expression, overflow is
>>> a constraint violation.  For example, a case label like:
>>>
>>>     case (INT_MAX + 1) * 0:
>>>
>>> must be diagnosed at compile time.
>>
>> gcc disagrees with you.
>
> What makes you think so?
>
> [...]

I'm skipping this and proceeding on to the original question.

> But taking a closer look at the standard, I'm not 100% sure that the
> language requires a diagnostic, though I think that's the intent.
> The relevant constraint is:
>
>     Each constant expression shall evaluate to a constant that is
>     in the range of representable values for its type.
>
> If I squint really hard, I can argue that the entire expression
> has to be a constant expression, but it doesn't say that its
> subexpressions are constant expressions -- and *if* INT_MAX +
> 1 evaluates to INT_MIN in the current implementation, then
> (INT_MAX + 1) * 0 evaluates to 0 and therefore satisfies the
> constraint.

My reasoning is as follows.

To determine if the constraint is satisfied, the compiler must
first evaluate the expression (INT_MAX + 1) * 0.

To evaluate the expression (INT_MAX + 1) * 0, the compiler must
first evaluate the sub-expression (INT_MAX + 1).

Because the expression (INT_MAX + 1) overflows, the behavior is
undefined, and the compiler is free to decide that the value of
the sub-expression (INT_MAX + 1) is, let's say, 12.

The compiler next evaluates the overall expression as 12*0, which
is 0 (an int).

This result of the overall expression satisfies the constraint,
and so the compiler is not obliged to generate a diagnostic.

Going back, when evaluating (INT_MAX + 1), the compiler could
have decided to choose the value 3.14159e47.  In that case the
value of the overall expression would be 0.0.  This value has
type double, which does not satisfy the constraint that the
result have integer type.  Thus if the compiler had made this
decision then a diagnostic would be required.

Overall conclusion:  whether a diagnostic is required depends on
what behavior is chosen for the construct (INT_MAX + 1).  The
implementation could choose a behavior where the constraint is
satisfied, or it could choose a behavior where the constraint is
not satisfied.

> But INT_MAX + 1 could legally trap, for example, and I don't
> believe it was intended that a given expression can be a constant
> expression or not depending on the vagaries of the behavior of an
> instance of UB.

I see no basis for this belief.  My conclusions are based on what
the C standard actually says, rather than guesses about some
unstated "intentions".  I think you would do well to reach your
conclusions based more on the actual text of the C standard, and
less on your interpretation of what the text was "intended" to
mean.

[toc] | [prev] | [next] | [standalone]


#399756

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-06-05 11:24 -0700
Message-ID<10vv49k$1aoa2$4@kst.eternal-september.org>
In reply to#399748
Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>> Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
>>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>>> Note that in a context that requires a constant expression, overflow is
>>>> a constraint violation.  For example, a case label like:
>>>>
>>>>     case (INT_MAX + 1) * 0:
>>>>
>>>> must be diagnosed at compile time.
>>>
>>> gcc disagrees with you.
>>
>> What makes you think so?
>>
>> [...]
>
> I'm skipping this and proceeding on to the original question.

Why?

You made a statement, "gcc disagrees with you".  I demonstrated,
in text that you snipped, that gcc does in fact agree with me.
You were wrong.  I don't know the basis of your error, so I asked.
Or maybe I'm missing something, and you had a valid point that I
didn't understand.

You're not required to answer my question, which I think was
an extremely reasonable one, but quoting it and then explicitly
refusing to answer it is pointlessly rude.

I'd like to know whether you still think you were right.  If so,
I'd like to see your explanation.  If not, an admission that you
made a mistake would be appreciated.  But I expect neither from you.

[SNIP]

> I see no basis for this belief.  My conclusions are based on what
> the C standard actually says, rather than guesses about some
> unstated "intentions".  I think you would do well to reach your
> conclusions based more on the actual text of the C standard, and
> less on your interpretation of what the text was "intended" to
> mean.

The actual text of the standard implies that 42 is not an expression.
I rely on the obvious intent to conclude that it is.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#399791

FromTim Rentsch <tr.17687@z991.linuxsc.com>
Date2026-06-08 08:35 -0700
Message-ID<86y0gp82pd.fsf@linuxsc.com>
In reply to#399756
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:

> Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
>
>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>
>>> Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
>>>
>>>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>>>
>>>>> Note that in a context that requires a constant expression, overflow is
>>>>> a constraint violation.  For example, a case label like:
>>>>>
>>>>>     case (INT_MAX + 1) * 0:
>>>>>
>>>>> must be diagnosed at compile time.
>>>>
>>>> gcc disagrees with you.
>>>
>>> What makes you think so?
>>>
>>> [...]
>>
>> I'm skipping this and proceeding on to the original question.
>
> Why?

gcc is not authoritative.  I didn't want to get into an argument
about whether gcc is conforming, or which version of gcc was used,
or any similar distractions.  The C standard /is/ authoritative,
and I thought it would save time to cut to the chase.

> You made a statement, "gcc disagrees with you".  I demonstrated,
> in text that you snipped, that gcc does in fact agree with me.

No, you didn't.

> You were wrong.

No, I wasn't.  Your testing was faulty.

> I don't know the basis of your error, so I asked.
> Or maybe I'm missing something, and you had a valid point that I
> didn't understand.

I'm offended that you think I have an obligation to remedy your
habit of lazy thinking, especially when as here the answer was
staring you right in the face, and you simply ignored it.

> You're not required to answer my question, which I think was
> an extremely reasonable one, but quoting it and then explicitly
> refusing to answer it is pointlessly rude.

I wasn't refusing to answer.  What I was doing was trying to
answer the original question, and answer it in a way that wouldn't
get lost in pointless bickering.  Silly me.

> I'd like to know whether you still think you were right.  If so,
> I'd like to see your explanation.  If not, an admission that you
> made a mistake would be appreciated.  But I expect neither from you.

I'd like to know why you ignored my explanation, based directly on
text from the C standard, about why an implementation is allowed to
process the code in question, without giving a diagnostic, and
still be conforming.  An explanation that Dan Cross agreed with,
even if he may not like the consequences.

In investigating this question, I have run compilations using
multiple versions of gcc, on two different platforms.  I have looked
carefully through the gcc man page.  I have also run compilations
using multiple versions of clang, on two different platforms.  After
doing all that, I ran compilations using godbolt, so I could check
the latest, or maybe almost latest, versions of gcc and clang.  All
the different versions of gcc and clang that I have tried support my
hypothesis that gcc (and now also clang) interpret the C standard so
as to conclude that conforming to the C standard need not require a
diagnostic for situations like the code under discussion..

I'd like to ask you to do two things.  First, read through the
reasoning given in my previous post, try to assess whether that
reasoning is sound, and post the results of yours contemplations.
Second, look again at the question of whether gcc (and also clang,
if you're up to it) support the hypothesis that a conforming
implementation need not give a diagnostic for code like that under
discussion.  See if you can find a way of framing the question that
supports my statement, rather than simply looking for one that
supports your preconceived ideas.  Post the results of your
investigations, both what other experiments you tried, and what your
assessment is of the results you got.

Do these two things and I will endeavor to explain my views on the
questions you have raised here, if such explanations are still
needed after your further examinations and comments.

> [SNIP]
>
>> I see no basis for this belief.  My conclusions are based on what
>> the C standard actually says, rather than guesses about some
>> unstated "intentions".  I think you would do well to reach your
>> conclusions based more on the actual text of the C standard, and
>> less on your interpretation of what the text was "intended" to
>> mean.
>
> The actual text of the standard implies that 42 is not an expression.
> I rely on the obvious intent to conclude that it is.

Now it is you who is changing the subject.  Besides not being on
point to the question being considered, it's a silly argument, and I
would hope you are smart enough to realize that.  However, if you do
what I have asked in the previous paragraph, I can try to explain
why I think your views on this unrelated matter are wrongheaded.

[toc] | [prev] | [next] | [standalone]


Page 7 of 18 — ← Prev page 1 … 5 6 [7] 8 9 … 18  Next page →

Back to top | Article view | comp.lang.c


csiph-web