From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25158 invoked by alias); 17 Jul 2013 20:48:49 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 25095 invoked by uid 89); 17 Jul 2013 20:48:49 -0000 X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RDNS_NONE autolearn=no version=3.3.1 Received: from Unknown (HELO glazunov.sibelius.xs4all.nl) (83.163.83.176) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Wed, 17 Jul 2013 20:48:48 +0000 Received: from glazunov.sibelius.xs4all.nl (kettenis@localhost [127.0.0.1]) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3) with ESMTP id r6HKmZSF020793; Wed, 17 Jul 2013 22:48:35 +0200 (CEST) Received: (from kettenis@localhost) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3/Submit) id r6HKmZhD018958; Wed, 17 Jul 2013 22:48:35 +0200 (CEST) Date: Wed, 17 Jul 2013 20:48:00 -0000 Message-Id: <201307172048.r6HKmZhD018958@glazunov.sibelius.xs4all.nl> From: Mark Kettenis To: dje@google.com CC: tromey@redhat.com, gdb@sourceware.org In-reply-to: (message from Doug Evans on Tue, 16 Jul 2013 14:40:24 -0700) Subject: Re: C99 References: <87wqoqi5yf.fsf@fleche.redhat.com> <201307162122.r6GLMlMx012078@glazunov.sibelius.xs4all.nl> X-SW-Source: 2013-07/txt/msg00059.txt.bz2 > Date: Tue, 16 Jul 2013 14:40:24 -0700 > From: Doug Evans > > On Tue, Jul 16, 2013 at 2:22 PM, Mark Kettenis wrote: > >> From: Tom Tromey > >> Date: Tue, 16 Jul 2013 14:51:36 -0600 > >> > >> I'd like to draw attention to this patch: > >> > >> http://sourceware.org/ml/gdb-patches/2013-06/msg00808.html > >> > >> This points out that gdb has been unconditionally using a GCC extension, > >> apparently since at least 2010; the patch introducing the varargs define > >> in tracepoint.c was 7c56ce7 (2010-04-09). > >> > >> The patch proposes replacing this with the corresponding C99 construct. > >> > >> So, I'd like to propose we allow the use of C99 in gdb. In particular I > >> think we ought to require a C99 preprocessor -- enabling this particular > >> patch to go in and also allowing the use of "//" comments. > > > > Perhaps it is time to move on and start requiring a C99 compiler for GDB. > > But "//" comments are offensive to real C programmers! ;) > > > > Seriously though. This points out that such a switch has some > > consequences for our coding standards. We have a fairly consistent > > coding style in GDB, which makes it easy for people to move around in > > the codebase without getting distracted by the "looks" of the code. I > > think it's worth some effort to keep it that way. And allowing "//" > > comments isn't going to help. I'd vote for not using them at all. > > I don't see // as a serious issue, but I can live with it either way. > > > However, a more important C99 "misfeature" that affects the coding > > standard is the possibility to declare varaibles anywhere in the code. > > We should not allow this, except for declaring loop variables in a > > for() statement. > > Can you elaborate? Code like this: int foobar(char *foo, int bar) { sprintf(foo, "%d", bar) int j = strlen(foo); return j; } is bad if you're trained to look for variable declerations at the start of a block. C90 doesn't allow this; C99 changed that. Most hardcore C programmers consider this a bad decision by the standard committe. Most people do accept the following though: int foobar(int bar) { int sum = 0; for (int i = 0; i < bar; i++) sum += i; return sum; }