From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id M/geOlg5NWpkUg8AWB0awg (envelope-from ) for ; Fri, 19 Jun 2026 08:43:04 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=2VoLarXB; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=lmAzoLCO; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=pxQPLRbu; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=vc1NHJBm; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id D4F611E024; Fri, 19 Jun 2026 08:43:04 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 327D51E024 for ; Fri, 19 Jun 2026 08:43:00 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4B0454BA2E33 for ; Fri, 19 Jun 2026 12:42:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4B0454BA2E33 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=2VoLarXB; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=lmAzoLCO; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=pxQPLRbu; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=vc1NHJBm Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 28FD74BA2E09 for ; Fri, 19 Jun 2026 12:42:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 28FD74BA2E09 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 28FD74BA2E09 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1781872934; cv=none; b=tfzLGBHxkIPty3otQjeDs5iJ8u21GQpP7CsHp6Fb0UoqTA5eTPZ7BS89FkLOPNZ5nXwQPLP6eHCgfrZ+xOPJzNcqVrIxKuQBU5JXxmTuazwrmjCaqAZeU8yTUxYGpdX4pfS3RDt+VPTb3lDJ1G9jJsnpv2dJx5B8fEIn+n0YvMk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1781872934; c=relaxed/simple; bh=LDwTeMJmoebYgLifjf+QWJVxK6nKKX8yHjBHtbNLaMA=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature: Message-ID:Date:MIME-Version:Subject:To:From; b=QmShRGRbMa0FMQGM4CqLbETPP3mtIi3zindr9kAXzbS7lZCwk87xUzIGQ5IPRSEeugJX8LDGm6yUydvINphANyIFLSt0mPRV5hKK4mzT7DKTnfvbhPFrVGiaXdzwGq10brGTXCUXwp6/EkSksz8Q1FclW9BTTbMBmJ7KgORG5SE= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=2VoLarXB; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=lmAzoLCO; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=pxQPLRbu; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=vc1NHJBm DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 28FD74BA2E09 Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id DF236761CF; Fri, 19 Jun 2026 12:42:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1781872933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=awiuFoUbe0mMxXJt0pYnHFLsXs5MMN9JoC3icd2CKy0=; b=2VoLarXBXf5mif2LcHbgrw7pnd3ErxPnBfBcziP+0Y3heYxdMbJJ2iwnc1B/Rph2qYHr2h ZUjopRVj2TCIlzTa9ANPiuA1W66BDRjhVN8vx/9lPg7Vm8tV4SCvAGs5jy4xvjvi6N43yw crMQCf+QPwS0lu0cWjqK3TM/9FLlDN0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1781872933; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=awiuFoUbe0mMxXJt0pYnHFLsXs5MMN9JoC3icd2CKy0=; b=lmAzoLCOn0bTXpyocXnS49nIa7TGy0CNulQIlw3IAWmKSh8OHf5HbXSYCMSUdthYZwf9Lo Z9563vGTkYwzGDCA== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1781872931; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=awiuFoUbe0mMxXJt0pYnHFLsXs5MMN9JoC3icd2CKy0=; b=pxQPLRbuhJY2WfhxcwMyh5MxKeW6xZ75P7dTLuB644X8pxyS0mLtrz0pZwOXW4IyjqawUe 4kP9CtxelPv967YvqwnefR5wkoDPRxhxvYjevnlAYdYmA6dQgknnPFRlXvUOkvyIPSleaL CQb7+zFFEze7gszUHaoNGk3QZE/jkZ4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1781872931; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=awiuFoUbe0mMxXJt0pYnHFLsXs5MMN9JoC3icd2CKy0=; b=vc1NHJBmAT44KCqz+Gus55GcLe1HGIuLhR9fy3WHx66R4GpUY2KYCwqcoyHSGifg5Gl8RK Cbk6n43SgIqY+NAg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id BAED3779A8; Fri, 19 Jun 2026 12:42:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id rIZELCM5NWqrMgAAD6G6ig (envelope-from ); Fri, 19 Jun 2026 12:42:11 +0000 Message-ID: Date: Fri, 19 Jun 2026 14:42:11 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Remove ARI To: Tom Tromey , gdb-patches@sourceware.org References: <20260618160154.2229340-1-tromey@adacore.com> Content-Language: en-US From: Tom de Vries In-Reply-To: <20260618160154.2229340-1-tromey@adacore.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Result: default: False [-4.30 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.20)[-0.997]; MIME_GOOD(-0.10)[text/plain]; RCVD_VIA_SMTP_AUTH(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; MID_RHS_MATCH_FROM(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; DBL_BLOCKED_OPENRESOLVER(0.00)[makefile.in:url, gnu.org:url, imap1.dmz-prg2.suse.org:helo, suse.de:email, suse.de:mid, gdb_ari.sh:url, cwru.edu:url, update-web-ari.sh:url, sourceware.org:email, sourceware.org:url] X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org On 6/18/26 6:01 PM, Tom Tromey wrote: > I was reminded that while we turned off ARI reports a little while > ago, we never did remove ARI from gdb itself. This patch does so. > > ARI was an attempt at enforcing some gdb coding standards. However, > it seemed to get in the way more than it helped. Hi, this looks fine to me. Reviewed-By: Tom de Vries Maybe consider referring to https://sourceware.org/bugzilla/show_bug.cgi?id=33842 in the commit message. Thanks, - Tom > --- > .clang-format | 1 - > gdb/MAINTAINERS | 2 - > gdb/alloc.c | 8 +- > gdb/contrib/ari/create-web-ari-in-src.sh | 82 -- > gdb/contrib/ari/gdb_ari.sh | 1216 ---------------------- > gdb/contrib/ari/gdb_find.sh | 41 - > gdb/contrib/ari/update-web-ari.sh | 940 ----------------- > gdb/dwarf2/read.c | 2 +- > gdb/event-top.c | 2 +- > gdb/guile/scm-param.c | 6 +- > gdb/python/py-param.c | 4 +- > gdb/target-float.c | 2 +- > gdb/unittests/format_pieces-selftests.c | 10 +- > gdb/utils.c | 6 +- > gdbsupport/common-utils.cc | 6 +- > gdbsupport/gdb-xfree.h | 4 +- > gdbsupport/new-op.cc | 4 +- > 17 files changed, 27 insertions(+), 2309 deletions(-) > delete mode 100644 gdb/contrib/ari/create-web-ari-in-src.sh > delete mode 100755 gdb/contrib/ari/gdb_ari.sh > delete mode 100644 gdb/contrib/ari/gdb_find.sh > delete mode 100644 gdb/contrib/ari/update-web-ari.sh > > diff --git a/.clang-format b/.clang-format > index fd4f2d951e2..4456fff3c4e 100644 > --- a/.clang-format > +++ b/.clang-format > @@ -102,7 +102,6 @@ BreakConstructorInitializers: BeforeColon > BreakInheritanceList: BeforeColon > BreakStringLiterals: true > ColumnLimit: 79 > -CommentPragmas: 'ARI:' > CompactNamespaces: false > ConstructorInitializerIndentWidth: 2 > ContinuationIndentWidth: 2 > diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS > index 739c9b5736e..7982ea3c202 100644 > --- a/gdb/MAINTAINERS > +++ b/gdb/MAINTAINERS > @@ -502,8 +502,6 @@ readline/ Master version: ftp://ftp.cwru.edu/pub/bash/ > > tcl/ tk/ itcl/ ALL > > -contrib/ari Pierre Muller muller@sourceware.org > - > > Authorized Committers > --------------------- > diff --git a/gdb/alloc.c b/gdb/alloc.c > index 5ab83856959..9013d9ab149 100644 > --- a/gdb/alloc.c > +++ b/gdb/alloc.c > @@ -49,7 +49,7 @@ xmalloc (size_t size) > if (size == 0) > size = 1; > > - val = malloc (size); /* ARI: malloc */ > + val = malloc (size); > if (val == NULL) > malloc_failure (size); > > @@ -67,9 +67,9 @@ xrealloc (void *ptr, size_t size) > size = 1; > > if (ptr != NULL) > - val = realloc (ptr, size); /* ARI: realloc */ > + val = realloc (ptr, size); > else > - val = malloc (size); /* ARI: malloc */ > + val = malloc (size); > if (val == NULL) > malloc_failure (size); > > @@ -89,7 +89,7 @@ xcalloc (size_t number, size_t size) > size = 1; > } > > - mem = calloc (number, size); /* ARI: xcalloc */ > + mem = calloc (number, size); > if (mem == NULL) > malloc_failure (number * size); > > diff --git a/gdb/contrib/ari/create-web-ari-in-src.sh b/gdb/contrib/ari/create-web-ari-in-src.sh > deleted file mode 100644 > index e8ba13ef540..00000000000 > --- a/gdb/contrib/ari/create-web-ari-in-src.sh > +++ /dev/null > @@ -1,82 +0,0 @@ > -#! /bin/sh > - > -# GDB script to create web ARI page directly from within gdb/ari directory. > -# > -# Copyright (C) 2012-2026 Free Software Foundation, Inc. > -# > -# This file is part of GDB. > -# > -# This program is free software; you can redistribute it and/or modify > -# it under the terms of the GNU General Public License as published by > -# the Free Software Foundation; either version 3 of the License, or > -# (at your option) any later version. > -# > -# This program is distributed in the hope that it will be useful, > -# but WITHOUT ANY WARRANTY; without even the implied warranty of > -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > -# GNU General Public License for more details. > -# > -# You should have received a copy of the GNU General Public License > -# along with this program. If not, see . > - > -# Determine directory of current script. > -scriptpath=`dirname $0` > -# If "scriptpath" is a relative path, then convert it to absolute. > -if [ "`echo ${scriptpath} | cut -b1`" != '/' ] ; then > - scriptpath="`pwd`/${scriptpath}" > -fi > - > -# update-web-ari.sh script wants four parameters > -# 1: directory of checkout src or gdb-RELEASE for release sources. > -# 2: a temp directory. > -# 3: a directory for generated web page. > -# 4: The name of the current package, must be gdb here. > -# Here we provide default values for these 4 parameters > - > -# srcdir parameter > -if [ -z "${srcdir}" ] ; then > - srcdir=${scriptpath}/../../.. > -fi > - > -# Determine location of a temporary directory to be used by > -# update-web-ari.sh script. > -if [ -z "${tempdir}" ] ; then > - if [ ! -z "$TMP" ] ; then > - tempdir=$TMP/create-ari > - elif [ ! -z "$TEMP" ] ; then > - tempdir=$TEMP/create-ari > - else > - tempdir=/tmp/create-ari > - fi > -fi > - > -# Default location of generated index.html web page. > -if [ -z "${webdir}" ] ; then > -# Use 'branch' subdir name if Tag contains branch > - if [ -f "${srcdir}/gdb/CVS/Tag" ] ; then > - tagname=`cat "${srcdir}/gdb/CVS/Tag"` > - elif [ -d "${srcdir}/.git" ] ; then > - tagname=`cd ${srcdir} && git rev-parse --abbrev-ref HEAD` > - if test "$tagname" = "master"; then > - tagname=trunk > - fi > - else > - tagname=trunk > - fi > - if [ "${tagname#branch}" != "${tagname}" ] ; then > - subdir=branch > - else > - subdir=trunk > - fi > - webdir=`pwd`/${subdir}/ari > -fi > - > -# Launch update-web-ari.sh in same directory as current script. > -${SHELL} ${scriptpath}/update-web-ari.sh ${srcdir} ${tempdir} ${webdir} gdb > - > -if [ -f "${webdir}/index.html" ] ; then > - echo "ARI output can be viewed in file \"${webdir}/index.html\"" > -else > - echo "ARI script failed to generate file \"${webdir}/index.html\"" > -fi > - > diff --git a/gdb/contrib/ari/gdb_ari.sh b/gdb/contrib/ari/gdb_ari.sh > deleted file mode 100755 > index 41bfae4db80..00000000000 > --- a/gdb/contrib/ari/gdb_ari.sh > +++ /dev/null > @@ -1,1216 +0,0 @@ > -#!/bin/sh > - > -# GDB script to list of problems using awk. > -# > -# Copyright (C) 2002-2026 Free Software Foundation, Inc. > -# > -# This file is part of GDB. > -# > -# This program is free software; you can redistribute it and/or modify > -# it under the terms of the GNU General Public License as published by > -# the Free Software Foundation; either version 3 of the License, or > -# (at your option) any later version. > -# > -# This program is distributed in the hope that it will be useful, > -# but WITHOUT ANY WARRANTY; without even the implied warranty of > -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > -# GNU General Public License for more details. > -# > -# You should have received a copy of the GNU General Public License > -# along with this program. If not, see . > - > -# Make certain that the script is not running in an internationalized > -# environment. > - > -LANG=C ; export LANG > -LC_ALL=C ; export LC_ALL > - > -# Permanent checks take the form: > - > -# Do not use XXXX, C++11 implies YYYY > -# Do not use XXXX, instead use YYYY''. > - > -# and should never be removed. > - > -# Temporary checks take the form: > - > -# Replace XXXX with YYYY > - > -# and once they reach zero, can be eliminated. > - > -# FIXME: It should be able to override this on the command line > -error="regression" > -warning="regression" > -ari="regression eol code comment deprecated legacy obsolete gettext" > -all="regression eol code comment deprecated legacy obsolete gettext deprecate internal gdbarch macro" > -print_doc=0 > -print_idx=0 > - > -usage () > -{ > - cat <&2 > -Error: $1 > - > -Usage: > - $0 --print-doc --print-idx -Wall -Werror -WCATEGORY FILE ... > -Options: > - --print-doc Print a list of all potential problems, then exit. > - --print-idx Include the problems IDX (index or key) in every message. > - --src=file Write source lines to file. > - -Werror Treat all problems as errors. > - -Wall Report all problems. > - -Wari Report problems that should be fixed in new code. > - -WCATEGORY Report problems in the specified category. The category > - can be prefixed with "no-". Valid categories > - are: ${all} > -EOF > - exit 1 > -} > - > - > -# Parse the various options > -Woptions= > -srclines="" > -while test $# -gt 0 > -do > - case "$1" in > - -Wall ) Woptions="${all}" ;; > - -Wari ) Woptions="${ari}" ;; > - -Werror ) Werror=1 ;; > - -W* ) Woptions="${Woptions} `echo x$1 | sed -e 's/x-W//'`" ;; > - --print-doc ) print_doc=1 ;; > - --print-idx ) print_idx=1 ;; > - --src=* ) srclines="`echo $1 | sed -e 's/--src=/srclines=\"/'`\"" ;; > - -- ) shift ; break ;; > - - ) break ;; > - -* ) usage "$1: unknown option" ;; > - * ) break ;; > - esac > - shift > -done > -if test -n "$Woptions" ; then > - warning="$Woptions" > - error= > -fi > - > - > -# -Werror implies treating all warnings as errors. > -if test -n "${Werror}" ; then > - error="${error} ${warning}" > -fi > - > - > -# Validate all errors and warnings. > -for w in ${warning} ${error} > -do > - case "$w" in > - no-*) w=`echo x$w | sed -e 's/xno-//'`;; > - esac > - > - case " ${all} " in > - *" ${w} "* ) ;; > - * ) usage "Unknown option -W${w}" ;; > - esac > -done > - > - > -# make certain that there is at least one file. > -if test $# -eq 0 -a ${print_doc} = 0 > -then > - usage "Missing file." > -fi > - > - > -# Convert the errors/warnings into corresponding array entries. > -for a in ${all} > -do > - aris="${aris} ari_${a} = \"${a}\";" > -done > -for w in ${warning} > -do > - val=1 > - case "$w" in > - no-*) w=`echo x$w | sed -e 's/xno-//'`; val=0 ;; > - esac > - warnings="${warnings} warning[ari_${w}] = $val;" > -done > -for e in ${error} > -do > - val=1 > - case "$e" in > - no-*) e=`echo x$e | sed -e 's/xno-//'`; val=0 ;; > - esac > - errors="${errors} error[ari_${e}] = $val;" > -done > - > -if [ "$AWK" = "" ] ; then > - AWK=awk > -fi > - > -${AWK} -- ' > -BEGIN { > - # NOTE, for a per-file begin use "FNR == 1". > - '"${aris}"' > - '"${errors}"' > - '"${warnings}"' > - '"${srclines}"' > - print_doc = '$print_doc' > - print_idx = '$print_idx' > - PWD = "'`pwd`'" > -} > - > -# Print the error message for BUG. Append SUPPLEMENT if non-empty. > -function print_bug(file,line,prefix,category,bug,doc,supplement, suffix,idx) { > - if (print_idx) { > - idx = bug ": " > - } else { > - idx = "" > - } > - if (supplement) { > - suffix = " (" supplement ")" > - } else { > - suffix = "" > - } > - # ari.*.bug: :: : : > - print file ":" line ": " prefix category ": " idx doc suffix > - if (srclines != "") { > - print file ":" line ":" $0 >> srclines > - } > -} > - > -function fix(bug,file,count) { > - skip[bug, file] = count > - skipped[bug, file] = 0 > -} > - > -function fail(bug,supplement) { > - if (doc[bug] == "") { > - print_bug("", 0, "internal: ", "internal", "internal", "Missing doc for bug " bug) > - exit > - } > - if (category[bug] == "") { > - print_bug("", 0, "internal: ", "internal", "internal", "Missing category for bug " bug) > - exit > - } > - > - if (ARI_OK == bug) { > - return > - } > - # Trim the filename down to just DIRECTORY/FILE so that it can be > - # robustly used by the FIX code. > - > - if (FILENAME ~ /^\//) { > - canonicalname = FILENAME > - } else { > - canonicalname = PWD "/" FILENAME > - } > - shortname = gensub (/^.*\/([^\\]*\/[^\\]*)$/, "\\1", 1, canonicalname) > - > - skipped[bug, shortname]++ > - if (skip[bug, shortname] >= skipped[bug, shortname]) { > - # print FILENAME, FNR, skip[bug, FILENAME], skipped[bug, FILENAME], bug > - # Do nothing > - } else if (error[category[bug]]) { > - # ari.*.bug: :: : : > - print_bug(FILENAME, FNR, "", category[bug], bug, doc[bug], supplement) > - } else if (warning[category[bug]]) { > - # ari.*.bug: :: : : > - print_bug(FILENAME, FNR, "warning: ", category[bug], bug, doc[bug], supplement) > - } > -} > - > -FNR == 1 { > - seen[FILENAME] = 1 > - if (match(FILENAME, "\\.[ly]$")) { > - # FILENAME is a lex or yacc source > - is_yacc_or_lex = 1 > - } > - else { > - is_yacc_or_lex = 0 > - } > -} > -END { > - if (print_idx) { > - idx = bug ": " > - } else { > - idx = "" > - } > - # Did we do only a partial skip? > - for (bug_n_file in skip) { > - split (bug_n_file, a, SUBSEP) > - bug = a[1] > - file = a[2] > - if (seen[file] && (skipped[bug_n_file] < skip[bug_n_file])) { > - # ari.*.bug: :: : : > - b = file " missing " bug > - print_bug(file, 0, "", "internal", file " missing " bug, "Expecting " skip[bug_n_file] " occurrences of bug " bug " in file " file ", only found " skipped[bug_n_file]) > - } > - } > -} > - > - > -# Skip OBSOLETE lines > -/(^|[^_[:alnum:]])OBSOLETE([^_[:alnum:]]|$)/ { next; } > - > -# Skip ARI lines > - > -BEGIN { > - ARI_OK = "" > -} > - > -/\/\* ARI:[[:space:]]*(.*)[[:space:]]*\*\// { > - ARI_OK = gensub(/^.*\/\* ARI:[[:space:]]*(.*[^[:space:]])[[:space:]]*\*\/.*$/, "\\1", 1, $0) > - # print "ARI line found \"" $0 "\"" > - # print "ARI_OK \"" ARI_OK "\"" > -} > -! /\/\* ARI:[[:space:]]*(.*)[[:space:]]*\*\// { > - ARI_OK = "" > -} > - > - > -# SNIP - Strip out comments - SNIP > - > -FNR == 1 { > - comment_p = 0 > -} > -comment_p && /\*\// { gsub (/^([^\*]|\*+[^\/\*])*\*+\//, " "); comment_p = 0; } > -comment_p { next; } > -!comment_p { gsub (/\/\*([^\*]|\*+[^\/\*])*\*+\//, " "); } > -!comment_p && /(^|[^"])\/\*/ { gsub (/\/\*.*$/, " "); comment_p = 1; } > - > - > -BEGIN { doc["_ markup"] = "\ > -All messages should be marked up with _." > - category["_ markup"] = ari_gettext > -} > -/^[^"]*[[:space:]](warning|error|error_no_arg|query|perror_with_name)[[:space:]]*\([^_\(a-z]/ { > - if (! /\("%s"/) { > - fail("_ markup") > - } > -} > - > -BEGIN { doc["trailing new line"] = "\ > -A message should not have a trailing new line" > - category["trailing new line"] = ari_gettext > -} > -/(^|[^_[:alnum:]])(warning|error)[[:space:]]*\(_\(".*\\n"\)[\),]/ { > - fail("trailing new line") > -} > - > -# Include files for which GDB has a custom version. > - > -BEGIN { doc["assert.h"] = "\ > -Do not include assert.h, instead include \"gdb_assert.h\""; > - category["assert.h"] = ari_regression > - fix("assert.h", "gdb/gdb_assert.h", 0) # it does not use it > -} > -/^#[[:space:]]*include[[:space:]]+.assert\.h./ { > - fail("assert.h") > -} > - > -BEGIN { doc["regex.h"] = "\ > -Do not include regex.h, instead include gdb_regex.h" > - category["regex.h"] = ari_regression > - fix("regex.h", "gdb/gdb_regex.h", 1) > -} > -/^#[[:space:]]*include[[:space:]]*.regex\.h./ { > - fail("regex.h") > -} > - > -BEGIN { doc["xregex.h"] = "\ > -Do not include xregex.h, instead include gdb_regex.h" > - category["xregex.h"] = ari_regression > - fix("xregex.h", "gdb/gdb_regex.h", 1) > -} > -/^#[[:space:]]*include[[:space:]]*.xregex\.h./ { > - fail("xregex.h") > -} > - > -BEGIN { doc["gnu-regex.h"] = "\ > -Do not include gnu-regex.h, instead include gdb_regex.h" > - category["gnu-regex.h"] = ari_regression > -} > -/^#[[:space:]]*include[[:space:]]*.gnu-regex\.h./ { > - fail("gnu regex.h") > -} > - > -BEGIN { doc["wait.h"] = "\ > -Do not include wait.h or sys/wait.h, instead include gdb_wait.h" > - fix("wait.h", "gdbsupport/gdb_wait.h", 2); > - category["wait.h"] = ari_regression > -} > -/^#[[:space:]]*include[[:space:]]*.wait\.h./ \ > -|| /^#[[:space:]]*include[[:space:]]*.sys\/wait\.h./ { > - fail("wait.h") > -} > - > -BEGIN { doc["vfork.h"] = "\ > -Do not include vfork.h, instead include gdb_vfork.h" > - fix("vfork.h", "gdb/gdb_vfork.h", 1); > - category["vfork.h"] = ari_regression > -} > -/^#[[:space:]]*include[[:space:]]*.vfork\.h./ { > - fail("vfork.h") > -} > - > -BEGIN { doc["error not internal-warning"] = "\ > -Do not use error(\"internal-warning\"), instead use internal_warning" > - category["error not internal-warning"] = ari_regression > -} > -/error.*\"[Ii]nternal.warning/ { > - fail("error not internal-warning") > -} > - > -BEGIN { doc["%p"] = "\ > -Do not use printf(\"%p\"), instead use printf(\"%s\",paddr()) to dump a \ > -target address, or host_address_to_string() for a host address" > - category["%p"] = ari_code > -} > -# Allow gdb %p extensions, but not other uses of %p. > -/%p[^[\]sF]/ && !/%prec/ { > - fail("%p") > -} > - > -BEGIN { doc["%ll"] = "\ > -Do not use printf(\"%ll\"), instead use printf(\"%s\",phex()) to dump a \ > -`long long'\'' value" > - category["%ll"] = ari_code > -} > -# Allow %ll in scanf > -/%[0-9]*ll/ && !/scanf \(.*%[0-9]*ll/ { > - fail("%ll") > -} > - > - > -# SNIP - Strip out strings - SNIP > - > -# Test on top.c, scm-valprint.c, remote-rdi.c, ada-lang.c > -FNR == 1 { > - string_p = 0 > - trace_string = 0 > -} > -# Strip escaped characters. > -{ gsub(/\\./, "."); } > -# Strip quoted quotes. > -{ gsub(/'\''.'\''/, "'\''.'\''"); } > -# End of multi-line string > -string_p && /\"/ { > - if (trace_string) print "EOS:" FNR, $0; > - gsub (/^[^\"]*\"/, "'\''"); > - string_p = 0; > -} > -# Middle of multi-line string, discard line. > -string_p { > - if (trace_string) print "MOS:" FNR, $0; > - $0 = "" > -} > -# Strip complete strings from the middle of the line > -!string_p && /\"[^\"]*\"/ { > - if (trace_string) print "COS:" FNR, $0; > - gsub (/\"[^\"]*\"/, "'\''"); > -} > -# Start of multi-line string > -BEGIN { doc["multi-line string"] = "\ > -Multi-line string must have the newline escaped" > - category["multi-line string"] = ari_regression > -} > -!string_p && /\"/ { > - if (trace_string) print "SOS:" FNR, $0; > - if (/[^\\]$/) { > - fail("multi-line string") > - } > - gsub (/\"[^\"]*$/, "'\''"); > - string_p = 1; > -} > -# { print } > - > -# Multi-line string > -string_p && > - > -# Accumulate continuation lines > -FNR == 1 { > - cont_p = 0 > -} > -!cont_p { full_line = ""; } > -/[^\\]\\$/ { gsub (/\\$/, ""); full_line = full_line $0; cont_p = 1; next; } > -cont_p { $0 = full_line $0; cont_p = 0; full_line = ""; } > - > - > -BEGIN { doc["__FUNCTION__"] = "\ > -Do not use __FUNCTION__, C++11 does not support this macro" > - category["__FUNCTION__"] = ari_regression > -} > -/(^|[^_[:alnum:]])__FUNCTION__([^_[:alnum:]]|$)/ { > - fail("__FUNCTION__") > -} > - > -BEGIN { doc["__CYGWIN32__"] = "\ > -Do not use __CYGWIN32__, instead use __CYGWIN__ or, better, an explicit \ > -autoconf tests" > - category["__CYGWIN32__"] = ari_regression > -} > -/(^|[^_[:alnum:]])__CYGWIN32__([^_[:alnum:]]|$)/ { > - fail("__CYGWIN32__") > -} > - > -BEGIN { doc["PTR"] = "\ > -Do not use PTR, C++11 implies `void *'\''" > - category["PTR"] = ari_regression > - #fix("PTR", "gdb/utils.c", 6) > -} > -/(^|[^_[:alnum:]])PTR([^_[:alnum:]]|$)/ { > - fail("PTR") > -} > - > -BEGIN { doc["UCASE function"] = "\ > -Function name is uppercase." > - category["UCASE function"] = ari_code > - possible_UCASE = 0 > - UCASE_full_line = "" > -} > -(possible_UCASE) { > - if (ARI_OK == "UCASE function") { > - possible_UCASE = 0 > - } > - # Closing brace found? > - else if (UCASE_full_line ~ \ > - /^[A-Z][[:alnum:]_]*[[:space:]]*\([^()]*\).*$/) { > - if ((UCASE_full_line ~ \ > - /^[A-Z][[:alnum:]_]*[[:space:]]*\([^()]*\)[[:space:]]*$/) \ > - && ($0 ~ /^\{/) && (is_yacc_or_lex == 0)) { > - store_FNR = FNR > - FNR = possible_FNR > - store_0 = $0; > - $0 = UCASE_full_line; > - fail("UCASE function") > - FNR = store_FNR > - $0 = store_0; > - } > - possible_UCASE = 0 > - UCASE_full_line = "" > - } else { > - UCASE_full_line = UCASE_full_line $0; > - } > -} > -/^[A-Z][[:alnum:]_]*[[:space:]]*\([^()]*(|\))[[:space:]]*$/ { > - possible_UCASE = 1 > - if (ARI_OK == "UCASE function") { > - possible_UCASE = 0 > - } > - possible_FNR = FNR > - UCASE_full_line = $0 > -} > - > - > -BEGIN { doc["editCase function"] = "\ > -Function name starts lower case but has uppercased letters." > - category["editCase function"] = ari_code > - possible_editCase = 0 > - editCase_full_line = "" > -} > -(possible_editCase) { > - if (ARI_OK == "editCase function") { > - possible_editCase = 0 > - } > - # Closing brace found? > - else if (editCase_full_line ~ \ > -/^[a-z][a-z0-9_]*[A-Z][a-z0-9A-Z_]*[[:space:]]*\([^()]*\).*$/) { > - if ((editCase_full_line ~ \ > -/^[a-z][a-z0-9_]*[A-Z][a-z0-9A-Z_]*[[:space:]]*\([^()]*\)[[:space:]]*$/) \ > - && ($0 ~ /^\{/) && (is_yacc_or_lex == 0)) { > - store_FNR = FNR > - FNR = possible_FNR > - store_0 = $0; > - $0 = editCase_full_line; > - fail("editCase function") > - FNR = store_FNR > - $0 = store_0; > - } > - possible_editCase = 0 > - editCase_full_line = "" > - } else { > - editCase_full_line = editCase_full_line $0; > - } > -} > -/^[a-z][a-z0-9_]*[A-Z][a-z0-9A-Z_]*[[:space:]]*\([^()]*(|\))[[:space:]]*$/ { > - possible_editCase = 1 > - if (ARI_OK == "editCase function") { > - possible_editCase = 0 > - } > - possible_FNR = FNR > - editCase_full_line = $0 > -} > - > -# Only function implementation should be on first column > -BEGIN { doc["function call in first column"] = "\ > -Function name in first column should be restricted to function implementation" > - category["function call in first column"] = ari_code > -} > -/^[a-z][a-z0-9_]*[[:space:]]*\((|[^*][^()]*)\)[[:space:]]*[^ \t]+/ { > - fail("function call in first column") > -} > - > - > -BEGIN { doc["hash"] = "\ > -Do not use ` #...'\'', instead use `#...'\''(some compilers only correctly \ > -parse a C preprocessor directive when `#'\'' is the first character on \ > -the line)" > - category["hash"] = ari_regression > -} > -/^[[:space:]]+#/ { > - fail("hash") > -} > - > -BEGIN { doc["OP eol"] = "\ > -Do not use &&, or || at the end of a line" > - category["OP eol"] = ari_code > -} > -# * operator needs a special treatment as it can be a > -# valid end of line for a pointer type definition > -# Only catch case where an assignment or an opening brace is present > -/(\|\||\&\&|==|!=|[[:space:]][+\-\/])[[:space:]]*$/ \ > -|| /(\(|=)[[:space:]].*[[:space:]]\*[[:space:]]*$/ { > - fail("OP eol") > -} > - > -BEGIN { doc["strerror"] = "\ > -Do not use strerror(), instead use safe_strerror()" > - category["strerror"] = ari_regression > - fix("strerror", "gdb/gdb_string.h", 1) > - fix("strerror", "gdb/gdbsupport/mingw-strerror.c", 1) > - fix("strerror", "gdb/gdbsupport/posix-strerror.c", 1) > -} > -/(^|[^_[:alnum:]])strerror[[:space:]]*\(/ { > - fail("strerror") > -} > - > -BEGIN { doc["long long"] = "\ > -Do not use `long long'\'', instead use LONGEST" > - category["long long"] = ari_code > -} > -/(^|[^_[:alnum:]])long[[:space:]]+long([^_[:alnum:]]|$)/ { > - fail("long long") > -} > - > -BEGIN { doc["ATTR_FORMAT"] = "\ > -Do not use ATTR_FORMAT, use ATTRIBUTE_PRINTF instead" > - category["ATTR_FORMAT"] = ari_regression > -} > -/(^|[^_[:alnum:]])ATTR_FORMAT([^_[:alnum:]]|$)/ { > - fail("ATTR_FORMAT") > -} > - > -BEGIN { doc["ATTR_NORETURN"] = "\ > -Do not use ATTR_NORETURN, use ATTRIBUTE_NORETURN instead" > - category["ATTR_NORETURN"] = ari_regression > -} > -/(^|[^_[:alnum:]])ATTR_NORETURN([^_[:alnum:]]|$)/ { > - fail("ATTR_NORETURN") > -} > - > -BEGIN { doc["NORETURN"] = "\ > -Do not use NORETURN, use ATTRIBUTE_NORETURN instead" > - category["NORETURN"] = ari_regression > -} > -/(^|[^_[:alnum:]])NORETURN([^_[:alnum:]]|$)/ { > - fail("NORETURN") > -} > - > - > -# General problems > - > -# Commented out, but left inside sources, just in case. > -# BEGIN { doc["inline"] = "\ > -# Do not use the inline attribute; \ > -# since the compiler generally ignores this, better algorithm selection \ > -# is needed to improved performance" > -# category["inline"] = ari_code > -# } > -# /(^|[^_[:alnum:]])inline([^_[:alnum:]]|$)/ { > -# fail("inline") > -# } > - > -# This test is obsolete as this type > -# has been deprecated and finally suppressed from GDB sources > -#BEGIN { doc["obj_private"] = "\ > -#Replace obj_private with objfile_data" > -# category["obj_private"] = ari_obsolete > -#} > -#/(^|[^_[:alnum:]])obj_private([^_[:alnum:]]|$)/ { > -# fail("obj_private") > -#} > - > -BEGIN { doc["abort"] = "\ > -Do not use abort, instead use internal_error; GDB should never abort" > - category["abort"] = ari_regression > -} > -/(^|[^_[:alnum:]])abort[[:space:]]*\(/ { > - fail("abort") > -} > - > -BEGIN { doc["basename"] = "\ > -Do not use basename, instead use lbasename" > - category["basename"] = ari_regression > -} > -/(^|[^_[:alnum:]])basename[[:space:]]*\(/ { > - fail("basename") > -} > - > -BEGIN { doc["assert"] = "\ > -Do not use assert, instead use gdb_assert or internal_error; assert \ > -calls abort and GDB should never call abort" > - category["assert"] = ari_regression > -} > -/(^|[^_[:alnum:]])assert[[:space:]]*\(/ { > - fail("assert") > -} > - > -BEGIN { doc["TARGET_HAS_HARDWARE_WATCHPOINTS"] = "\ > -Replace TARGET_HAS_HARDWARE_WATCHPOINTS with nothing, not needed" > - category["TARGET_HAS_HARDWARE_WATCHPOINTS"] = ari_regression > -} > -/(^|[^_[:alnum:]])TARGET_HAS_HARDWARE_WATCHPOINTS([^_[:alnum:]]|$)/ { > - fail("TARGET_HAS_HARDWARE_WATCHPOINTS") > -} > - > -BEGIN { doc["ADD_SHARED_SYMBOL_FILES"] = "\ > -Replace ADD_SHARED_SYMBOL_FILES with nothing, not needed?" > - category["ADD_SHARED_SYMBOL_FILES"] = ari_regression > -} > -/(^|[^_[:alnum:]])ADD_SHARED_SYMBOL_FILES([^_[:alnum:]]|$)/ { > - fail("ADD_SHARED_SYMBOL_FILES") > -} > - > -BEGIN { doc["SOLIB_ADD"] = "\ > -Replace SOLIB_ADD with nothing, not needed?" > - category["SOLIB_ADD"] = ari_regression > -} > -/(^|[^_[:alnum:]])SOLIB_ADD([^_[:alnum:]]|$)/ { > - fail("SOLIB_ADD") > -} > - > -BEGIN { doc["SOLIB_CREATE_INFERIOR_HOOK"] = "\ > -Replace SOLIB_CREATE_INFERIOR_HOOK with nothing, not needed?" > - category["SOLIB_CREATE_INFERIOR_HOOK"] = ari_regression > -} > -/(^|[^_[:alnum:]])SOLIB_CREATE_INFERIOR_HOOK([^_[:alnum:]]|$)/ { > - fail("SOLIB_CREATE_INFERIOR_HOOK") > -} > - > -BEGIN { doc["SOLIB_LOADED_LIBRARY_PATHNAME"] = "\ > -Replace SOLIB_LOADED_LIBRARY_PATHNAME with nothing, not needed?" > - category["SOLIB_LOADED_LIBRARY_PATHNAME"] = ari_regression > -} > -/(^|[^_[:alnum:]])SOLIB_LOADED_LIBRARY_PATHNAME([^_[:alnum:]]|$)/ { > - fail("SOLIB_LOADED_LIBRARY_PATHNAME") > -} > - > -BEGIN { doc["REGISTER_U_ADDR"] = "\ > -Replace REGISTER_U_ADDR with nothing, not needed?" > - category["REGISTER_U_ADDR"] = ari_regression > -} > -/(^|[^_[:alnum:]])REGISTER_U_ADDR([^_[:alnum:]]|$)/ { > - fail("REGISTER_U_ADDR") > -} > - > -BEGIN { doc["PROCESS_LINENUMBER_HOOK"] = "\ > -Replace PROCESS_LINENUMBER_HOOK with nothing, not needed?" > - category["PROCESS_LINENUMBER_HOOK"] = ari_regression > -} > -/(^|[^_[:alnum:]])PROCESS_LINENUMBER_HOOK([^_[:alnum:]]|$)/ { > - fail("PROCESS_LINENUMBER_HOOK") > -} > - > -BEGIN { doc["PC_SOLIB"] = "\ > -Replace PC_SOLIB with nothing, not needed?" > - category["PC_SOLIB"] = ari_regression > -} > -/(^|[^_[:alnum:]])PC_SOLIB([^_[:alnum:]]|$)/ { > - fail("PC_SOLIB") > -} > - > -BEGIN { doc["IN_SOLIB_DYNSYM_RESOLVE_CODE"] = "\ > -Replace IN_SOLIB_DYNSYM_RESOLVE_CODE with nothing, not needed?" > - category["IN_SOLIB_DYNSYM_RESOLVE_CODE"] = ari_regression > -} > -/(^|[^_[:alnum:]])IN_SOLIB_DYNSYM_RESOLVE_CODE([^_[:alnum:]]|$)/ { > - fail("IN_SOLIB_DYNSYM_RESOLVE_CODE") > -} > - > -BEGIN { doc["GCC_COMPILED_FLAG_SYMBOL"] = "\ > -Replace GCC_COMPILED_FLAG_SYMBOL with nothing, not needed?" > - category["GCC_COMPILED_FLAG_SYMBOL"] = ari_deprecate > -} > -/(^|[^_[:alnum:]])GCC_COMPILED_FLAG_SYMBOL([^_[:alnum:]]|$)/ { > - fail("GCC_COMPILED_FLAG_SYMBOL") > -} > - > -BEGIN { doc["GCC2_COMPILED_FLAG_SYMBOL"] = "\ > -Replace GCC2_COMPILED_FLAG_SYMBOL with nothing, not needed?" > - category["GCC2_COMPILED_FLAG_SYMBOL"] = ari_deprecate > -} > -/(^|[^_[:alnum:]])GCC2_COMPILED_FLAG_SYMBOL([^_[:alnum:]]|$)/ { > - fail("GCC2_COMPILED_FLAG_SYMBOL") > -} > - > -BEGIN { doc["FUNCTION_EPILOGUE_SIZE"] = "\ > -Replace FUNCTION_EPILOGUE_SIZE with nothing, not needed?" > - category["FUNCTION_EPILOGUE_SIZE"] = ari_regression > -} > -/(^|[^_[:alnum:]])FUNCTION_EPILOGUE_SIZE([^_[:alnum:]]|$)/ { > - fail("FUNCTION_EPILOGUE_SIZE") > -} > - > -BEGIN { doc["HAVE_VFORK"] = "\ > -Do not use HAVE_VFORK, instead include \"gdb_vfork.h\" and call vfork() \ > -unconditionally" > - category["HAVE_VFORK"] = ari_regression > -} > -/(^|[^_[:alnum:]])HAVE_VFORK([^_[:alnum:]]|$)/ { > - fail("HAVE_VFORK") > -} > - > -BEGIN { doc["bcmp"] = "\ > -Do not use bcmp(), C++11 implies memcmp()" > - category["bcmp"] = ari_regression > -} > -/(^|[^_[:alnum:]])bcmp[[:space:]]*\(/ { > - fail("bcmp") > -} > - > -BEGIN { doc["setlinebuf"] = "\ > -Do not use setlinebuf(), C++11 implies setvbuf()" > - category["setlinebuf"] = ari_regression > -} > -/(^|[^_[:alnum:]])setlinebuf[[:space:]]*\(/ { > - fail("setlinebuf") > -} > - > -BEGIN { doc["bcopy"] = "\ > -Do not use bcopy(), C++11 implies memcpy() and memmove()" > - category["bcopy"] = ari_regression > -} > -/(^|[^_[:alnum:]])bcopy[[:space:]]*\(/ { > - fail("bcopy") > -} > - > -BEGIN { doc["get_frame_base"] = "\ > -Replace get_frame_base with get_frame_id, get_frame_base_address, \ > -get_frame_locals_address, or get_frame_args_address." > - category["get_frame_base"] = ari_obsolete > -} > -/(^|[^_[:alnum:]])get_frame_base([^_[:alnum:]]|$)/ { > - fail("get_frame_base") > -} > - > -BEGIN { doc["floatformat_to_double"] = "\ > -Do not use floatformat_to_double() from libierty, \ > -instead use floatformat_to_doublest()" > - category["floatformat_to_double"] = ari_regression > -} > -/(^|[^_[:alnum:]])floatformat_to_double[[:space:]]*\(/ { > - fail("floatformat_to_double") > -} > - > -BEGIN { doc["floatformat_from_double"] = "\ > -Do not use floatformat_from_double() from libierty, \ > -instead use host_float_ops::from_target()" > - category["floatformat_from_double"] = ari_regression > -} > -/(^|[^_[:alnum:]])floatformat_from_double[[:space:]]*\(/ { > - fail("floatformat_from_double") > -} > - > -BEGIN { doc["BIG_ENDIAN"] = "\ > -Do not use BIG_ENDIAN, instead use BFD_ENDIAN_BIG" > - category["BIG_ENDIAN"] = ari_regression > -} > -/(^|[^_[:alnum:]])BIG_ENDIAN([^_[:alnum:]]|$)/ { > - fail("BIG_ENDIAN") > -} > - > -BEGIN { doc["LITTLE_ENDIAN"] = "\ > -Do not use LITTLE_ENDIAN, instead use BFD_ENDIAN_LITTLE"; > - category["LITTLE_ENDIAN"] = ari_regression > -} > -/(^|[^_[:alnum:]])LITTLE_ENDIAN([^_[:alnum:]]|$)/ { > - fail("LITTLE_ENDIAN") > -} > - > -BEGIN { doc["BIG_ENDIAN"] = "\ > -Do not use BIG_ENDIAN, instead use BFD_ENDIAN_BIG" > - category["BIG_ENDIAN"] = ari_regression > -} > -/(^|[^_[:alnum:]])BIG_ENDIAN([^_[:alnum:]]|$)/ { > - fail("BIG_ENDIAN") > -} > - > -BEGIN { doc["sec_ptr"] = "\ > -Instead of sec_ptr, use struct bfd_section"; > - category["sec_ptr"] = ari_regression > -} > -/(^|[^_[:alnum:]])sec_ptr([^_[:alnum:]]|$)/ { > - fail("sec_ptr") > -} > - > -BEGIN { doc["frame_unwind_unsigned_register"] = "\ > -Replace frame_unwind_unsigned_register with frame_unwind_register_unsigned" > - category["frame_unwind_unsigned_register"] = ari_regression > -} > -/(^|[^_[:alnum:]])frame_unwind_unsigned_register([^_[:alnum:]]|$)/ { > - fail("frame_unwind_unsigned_register") > -} > - > -BEGIN { doc["frame_register_read"] = "\ > -Replace frame_register_read() with get_frame_register(), or \ > -possibly introduce a new method safe_get_frame_register()" > - category["frame_register_read"] = ari_obsolete > -} > -/(^|[^_[:alnum:]])frame_register_read([^_[:alnum:]]|$)/ { > - fail("frame_register_read") > -} > - > -BEGIN { doc["read_register"] = "\ > -Replace read_register() with regcache_read() et.al." > - category["read_register"] = ari_regression > -} > -/(^|[^_[:alnum:]])read_register([^_[:alnum:]]|$)/ { > - fail("read_register") > -} > - > -BEGIN { doc["write_register"] = "\ > -Replace write_register() with regcache_read() et.al." > - category["write_register"] = ari_regression > -} > -/(^|[^_[:alnum:]])write_register([^_[:alnum:]]|$)/ { > - fail("write_register") > -} > - > -function report(name) { > - # Drop any trailing _P. > - name = gensub(/(_P|_p)$/, "", 1, name) > - # Convert to lower case > - name = tolower(name) > - # Split into category and bug > - cat = gensub(/^([[:alpha:]]+)_([_[:alnum:]]*)$/, "\\1", 1, name) > - bug = gensub(/^([[:alpha:]]+)_([_[:alnum:]]*)$/, "\\2", 1, name) > - # Report it > - name = cat " " bug > - doc[name] = "Do not use " cat " " bug ", see declaration for details" > - category[name] = cat > - fail(name) > -} > - > -/(^|[^_[:alnum:]])(DEPRECATED|deprecated|set_gdbarch_deprecated|LEGACY|legacy|set_gdbarch_legacy)_/ { > - line = $0 > - # print "0 =", $0 > - while (1) { > - name = gensub(/^(|.*[^_[:alnum:]])((DEPRECATED|deprecated|LEGACY|legacy)_[_[:alnum:]]*)(.*)$/, "\\2", 1, line) > - line = gensub(/^(|.*[^_[:alnum:]])((DEPRECATED|deprecated|LEGACY|legacy)_[_[:alnum:]]*)(.*)$/, "\\1 \\4", 1, line) > - # print "name =", name, "line =", line > - if (name == line) break; > - report(name) > - } > -} > - > -# Count the number of times each architecture method is set > -/(^|[^_[:alnum:]])set_gdbarch_[_[:alnum:]]*([^_[:alnum:]]|$)/ { > - name = gensub(/^.*set_gdbarch_([_[:alnum:]]*).*$/, "\\1", 1, $0) > - doc["set " name] = "\ > -Call to set_gdbarch_" name > - category["set " name] = ari_gdbarch > - fail("set " name) > -} > - > -# Count the number of times each tm/xm/nm macro is defined or undefined > -/^#[[:space:]]*(undef|define)[[:space:]]+[[:alnum:]_]+.*$/ \ > -&& !/^#[[:space:]]*(undef|define)[[:space:]]+[[:alnum:]_]+_H($|[[:space:]])/ \ > -&& FILENAME ~ /(^|\/)config\/(|[^\/]*\/)(tm-|xm-|nm-).*\.h$/ { > - basename = gensub(/(^|.*\/)([^\/]*)$/, "\\2", 1, FILENAME) > - type = gensub(/^(tm|xm|nm)-.*\.h$/, "\\1", 1, basename) > - name = gensub(/^#[[:space:]]*(undef|define)[[:space:]]+([[:alnum:]_]+).*$/, "\\2", 1, $0) > - if (type == basename) { > - type = "macro" > - } > - doc[type " " name] = "\ > -Do not define macros such as " name " in a tm, nm or xm file, \ > -in fact do not provide a tm, nm or xm file" > - category[type " " name] = ari_macro > - fail(type " " name) > -} > - > -BEGIN { doc["deprecated_registers"] = "\ > -Replace deprecated_registers with nothing, they have reached \ > -end-of-life" > - category["deprecated_registers"] = ari_eol > -} > -/(^|[^_[:alnum:]])deprecated_registers([^_[:alnum:]]|$)/ { > - fail("deprecated_registers") > -} > - > -BEGIN { doc["read_pc"] = "\ > -Replace READ_PC() with frame_pc_unwind; \ > -at present the inferior function call code still uses this" > - category["read_pc"] = ari_deprecate > -} > -/(^|[^_[:alnum:]])read_pc[[:space:]]*\(/ || \ > -/(^|[^_[:alnum:]])set_gdbarch_read_pc[[:space:]]*\(/ || \ > -/(^|[^_[:alnum:]])TARGET_READ_PC[[:space:]]*\(/ { > - fail("read_pc") > -} > - > -BEGIN { doc["write_pc"] = "\ > -Replace write_pc() with get_frame_base_address or get_frame_id; \ > -at present the inferior function call code still uses this when doing \ > -a DECR_PC_AFTER_BREAK" > - category["write_pc"] = ari_deprecate > -} > -/(^|[^_[:alnum:]])write_pc[[:space:]]*\(/ || \ > -/(^|[^_[:alnum:]])TARGET_WRITE_PC[[:space:]]*\(/ { > - fail("write_pc") > -} > - > -BEGIN { doc["generic_target_write_pc"] = "\ > -Replace generic_target_write_pc with a per-architecture implementation, \ > -this relies on PC_REGNUM which is being eliminated" > - category["generic_target_write_pc"] = ari_regression > -} > -/(^|[^_[:alnum:]])generic_target_write_pc([^_[:alnum:]]|$)/ { > - fail("generic_target_write_pc") > -} > - > -BEGIN { doc["read_sp"] = "\ > -Replace read_sp() with frame_sp_unwind" > - category["read_sp"] = ari_regression > -} > -/(^|[^_[:alnum:]])read_sp[[:space:]]*\(/ || \ > -/(^|[^_[:alnum:]])set_gdbarch_read_sp[[:space:]]*\(/ || \ > -/(^|[^_[:alnum:]])TARGET_READ_SP[[:space:]]*\(/ { > - fail("read_sp") > -} > - > -BEGIN { doc["register_cached"] = "\ > -Replace register_cached() with nothing, does not have a regcache parameter" > - category["register_cached"] = ari_regression > -} > -/(^|[^_[:alnum:]])register_cached[[:space:]]*\(/ { > - fail("register_cached") > -} > - > -BEGIN { doc["set_register_cached"] = "\ > -Replace set_register_cached() with nothing, does not have a regcache parameter" > - category["set_register_cached"] = ari_regression > -} > -/(^|[^_[:alnum:]])set_register_cached[[:space:]]*\(/ { > - fail("set_register_cached") > -} > - > -# Print functions: Use versions that either check for buffer overflow > -# or safely allocate a fresh buffer. > - > -BEGIN { doc["sprintf"] = "\ > -Do not use sprintf, instead use xsnprintf or xstrprintf" > - category["sprintf"] = ari_code > -} > -/(^|[^_[:alnum:]])sprintf[[:space:]]*\(/ { > - fail("sprintf") > -} > - > -BEGIN { doc["vsprintf"] = "\ > -Do not use vsprintf(), instead use xstrvprintf" > - category["vsprintf"] = ari_regression > -} > -/(^|[^_[:alnum:]])vsprintf[[:space:]]*\(/ { > - fail("vsprintf") > -} > - > -BEGIN { doc["asprintf"] = "\ > -Do not use asprintf(), instead use xstrprintf()" > - category["asprintf"] = ari_regression > -} > -/(^|[^_[:alnum:]])asprintf[[:space:]]*\(/ { > - fail("asprintf") > -} > - > -BEGIN { doc["vasprintf"] = "\ > -Do not use vasprintf(), instead use xstrvprintf" > - fix("vasprintf", "gdbsupport/common-utils.c", 1) > - category["vasprintf"] = ari_regression > -} > -/(^|[^_[:alnum:]])vasprintf[[:space:]]*\(/ { > - fail("vasprintf") > -} > - > -BEGIN { doc["printf_vma"] = "\ > -Do not use printf_vma, instead use paddress or phex_nz" > - category["printf_vma"] = ari_code > -} > -/(^|[^_[:alnum:]])printf_vma[[:space:]]*\(/ { > - fail("printf_vma") > -} > - > -BEGIN { doc["sprintf_vma"] = "\ > -Do not use sprintf_vma, instead use paddress or phex_nz" > - category["sprintf_vma"] = ari_code > -} > -/(^|[^_[:alnum:]])sprintf_vma[[:space:]]*\(/ { > - fail("sprintf_vma") > -} > - > -# More generic memory operations > - > -BEGIN { doc["bzero"] = "\ > -Do not use bzero(), instead use memset()" > - category["bzero"] = ari_regression > -} > -/(^|[^_[:alnum:]])bzero[[:space:]]*\(/ { > - fail("bzero") > -} > - > -BEGIN { doc["strdup"] = "\ > -Do not use strdup(), instead use xstrdup()"; > - category["strdup"] = ari_regression > -} > -/(^|[^_[:alnum:]])strdup[[:space:]]*\(/ { > - fail("strdup") > -} > - > -BEGIN { doc["strsave"] = "\ > -Do not use strsave(), instead use xstrdup() et.al." > - category["strsave"] = ari_regression > -} > -/(^|[^_[:alnum:]])strsave[[:space:]]*\(/ { > - fail("strsave") > -} > - > -# String compare functions > - > -BEGIN { doc["strnicmp"] = "\ > -Do not use strnicmp(), instead use strncasecmp()" > - category["strnicmp"] = ari_regression > -} > -/(^|[^_[:alnum:]])strnicmp[[:space:]]*\(/ { > - fail("strnicmp") > -} > - > -# Typedefs that are either redundant or can be reduced to `struct > -# type *''. > -# Must be placed before if assignment otherwise ARI exceptions > -# are not handled correctly. > - > -BEGIN { doc["d_namelen"] = "\ > -Do not use dirent.d_namelen, instead use NAMELEN" > - category["d_namelen"] = ari_regression > -} > -/(^|[^_[:alnum:]])d_namelen([^_[:alnum:]]|$)/ { > - fail("d_namelen") > -} > - > -BEGIN { doc["strlen d_name"] = "\ > -Do not use strlen dirent.d_name, instead use NAMELEN" > - category["strlen d_name"] = ari_regression > -} > -/(^|[^_[:alnum:]])strlen[[:space:]]*\(.*[^_[:alnum:]]d_name([^_[:alnum:]]|$)/ { > - fail("strlen d_name") > -} > - > -BEGIN { doc["generic_use_struct_convention"] = "\ > -Replace generic_use_struct_convention with nothing, \ > -EXTRACT_STRUCT_VALUE_ADDRESS is a predicate" > - category["generic_use_struct_convention"] = ari_regression > -} > -/(^|[^_[:alnum:]])generic_use_struct_convention([^_[:alnum:]]|$)/ { > - fail("generic_use_struct_convention") > -} > - > -BEGIN { doc["if assignment"] = "\ > -An IF statement'\''s expression contains an assignment (the GNU coding \ > -standard discourages this)" > - category["if assignment"] = ari_code > -} > -BEGIN { doc["if clause more than 50 lines"] = "\ > -An IF statement'\''s expression expands over 50 lines" > - category["if clause more than 50 lines"] = ari_code > -} > -# > -# Accumulate continuation lines > -FNR == 1 { > - in_if = 0 > -} > - > -/(^|[^_[:alnum:]])if / { > - in_if = 1; > - if_brace_level = 0; > - if_cont_p = 0; > - if_count = 0; > - if_brace_end_pos = 0; > - if_full_line = ""; > -} > -(in_if) { > - # We want everything up to closing brace of same level > - if_count++; > - if (if_count > 50) { > - print "multiline if: " if_full_line $0 > - fail("if clause more than 50 lines") > - if_brace_level = 0; > - if_full_line = ""; > - } else { > - if (if_count == 1) { > - i = index($0,"if "); > - } else { > - i = 1; > - } > - for (i=i; i <= length($0); i++) { > - char = substr($0,i,1); > - if (char == "(") { if_brace_level++; } > - if (char == ")") { > - if_brace_level--; > - if (!if_brace_level) { > - if_brace_end_pos = i; > - after_if = substr($0,i+1,length($0)); > - # Do not parse what is following > - break; > - } > - } > - } > - if (if_brace_level == 0) { > - $0 = substr($0,1,i); > - in_if = 0; > - } else { > - if_full_line = if_full_line $0; > - if_cont_p = 1; > - next; > - } > - } > -} > -# if we arrive here, we need to concatenate, but we are at brace level 0 > - > -(if_brace_end_pos) { > - $0 = if_full_line substr($0,1,if_brace_end_pos); > - if (if_count > 1) { > - # print "IF: multi line " if_count " found at " FILENAME ":" FNR " \"" $0 "\"" > - } > - if_cont_p = 0; > - if_full_line = ""; > -} > -/(^|[^_[:alnum:]])if .* = / { > - # print "fail in if " $0 > - fail("if assignment") > -} > -(if_brace_end_pos) { > - $0 = $0 after_if; > - if_brace_end_pos = 0; > - in_if = 0; > -} > - > -# Printout of all found bug > - > -BEGIN { > - if (print_doc) { > - for (bug in doc) { > - fail(bug) > - } > - exit > - } > -}' "$@" > - > diff --git a/gdb/contrib/ari/gdb_find.sh b/gdb/contrib/ari/gdb_find.sh > deleted file mode 100644 > index ae81fcb76fc..00000000000 > --- a/gdb/contrib/ari/gdb_find.sh > +++ /dev/null > @@ -1,41 +0,0 @@ > -#!/bin/sh > - > -# GDB script to create list of files to check using gdb_ari.sh. > -# > -# Copyright (C) 2003-2026 Free Software Foundation, Inc. > -# > -# This file is part of GDB. > -# > -# This program is free software; you can redistribute it and/or modify > -# it under the terms of the GNU General Public License as published by > -# the Free Software Foundation; either version 3 of the License, or > -# (at your option) any later version. > -# > -# This program is distributed in the hope that it will be useful, > -# but WITHOUT ANY WARRANTY; without even the implied warranty of > -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > -# GNU General Public License for more details. > -# > -# You should have received a copy of the GNU General Public License > -# along with this program. If not, see . > - > -# Make certain that the script is not running in an internationalized > -# environment. > - > -LANG=C ; export LANG > -LC_ALL=C ; export LC_ALL > - > - > -# A find that prunes files that GDB users shouldn't be interested in. > -# Use sort to order files alphabetically. > - > -find "$@" \ > - -name testsuite -prune -o \ > - -name gdbserver -prune -o \ > - -name gdbtk -prune -o \ > - -name gnulib -prune -o \ > - -name '*-stub.c' -prune -o \ > - -name '*-exp.c' -prune -o \ > - -name ada-lex.c -prune -o \ > - -name cp-name-parser.c -prune -o \ > - -type f -name '*.[lyhc]' -print | sort > diff --git a/gdb/contrib/ari/update-web-ari.sh b/gdb/contrib/ari/update-web-ari.sh > deleted file mode 100644 > index 5689791d8b4..00000000000 > --- a/gdb/contrib/ari/update-web-ari.sh > +++ /dev/null > @@ -1,940 +0,0 @@ > -#!/bin/sh -x > - > -# GDB script to create GDB ARI web page. > -# > -# Copyright (C) 2001-2026 Free Software Foundation, Inc. > -# > -# This file is part of GDB. > -# > -# This program is free software; you can redistribute it and/or modify > -# it under the terms of the GNU General Public License as published by > -# the Free Software Foundation; either version 3 of the License, or > -# (at your option) any later version. > -# > -# This program is distributed in the hope that it will be useful, > -# but WITHOUT ANY WARRANTY; without even the implied warranty of > -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > -# GNU General Public License for more details. > -# > -# You should have received a copy of the GNU General Public License > -# along with this program. If not, see . > - > -# TODO: setjmp.h, setjmp and longjmp. > - > -# Direct stderr into stdout but still hang onto stderr (/dev/fd/3) > -exec 3>&2 2>&1 > -ECHO () > -{ > -# echo "$@" | tee /dev/fd/3 1>&2 > - echo "$@" 1>&2 > - echo "$@" 1>&3 > -} > - > -# Really mindless usage > -if test $# -ne 4 > -then > - echo "Usage: $0 " 1>&2 > - exit 1 > -fi > -snapshot=$1 ; shift > -tmpdir=$1 ; shift > -wwwdir=$1 ; shift > -project=$1 ; shift > - > -# Try to create destination directory if it doesn't exist yet > -if [ ! -d ${wwwdir} ] > -then > - mkdir -p ${wwwdir} > -fi > - > -# Fail if destination directory doesn't exist or is not writable > -if [ ! -w ${wwwdir} -o ! -d ${wwwdir} ] > -then > - echo ERROR: Can not write to directory ${wwwdir} >&2 > - exit 2 > -fi > - > -if [ ! -r ${snapshot} ] > -then > - echo ERROR: Can not read snapshot file 1>&2 > - exit 1 > -fi > - > -# FILE formats > -# ari.*.bug: :: : : > -# ari.*.idx: :: > -# ari.*.doc: ::: > -# Where ``*'' is {source,warning,indent,doschk} > - > -unpack_source_p=true > -delete_source_p=true > - > -check_warning_p=false # broken > -check_indent_p=false # too slow, too many fail > -check_source_p=true > -check_doschk_p=true > -check_werror_p=true > - > -update_doc_p=true > -update_web_p=true > - > -if awk --version 2>&1 /dev/null > -then > - AWK=awk > -else > - AWK=gawk > -fi > -export AWK > - > -# Set up a few cleanups > -if ${delete_source_p} > -then > - trap "cd /tmp; rm -rf ${tmpdir}; exit" 0 1 2 15 > -fi > - > - > -# If the first parameter is a directory, > -#we just use it as the extracted source > -if [ -d ${snapshot} ] > -then > - module=${project} > - srcdir=${snapshot} > - aridir=${srcdir}/${module}/contrib/ari > - unpack_source_p=false > - delete_source_p=false > - version_in=${srcdir}/${module}/version.in > -else > - # unpack the tar-ball > - if ${unpack_source_p} > - then > - # Was it previously unpacked? > - if ${delete_source_p} || test ! -d ${tmpdir}/${module}* > - then > - /bin/rm -rf "${tmpdir}" > - /bin/mkdir -p ${tmpdir} > - if [ ! -d ${tmpdir} ] > - then > - echo "Problem creating work directory" > - exit 1 > - fi > - cd ${tmpdir} || exit 1 > - echo `date`: Unpacking tar-ball ... > - case ${snapshot} in > - *.tar.bz2 ) bzcat ${snapshot} ;; > - *.tar ) cat ${snapshot} ;; > - * ) ECHO Bad file ${snapshot} ; exit 1 ;; > - esac | tar xf - > - fi > - fi > - > - module=`basename ${snapshot}` > - module=`basename ${module} .bz2` > - module=`basename ${module} .tar` > - srcdir=`echo ${tmpdir}/${module}*` > - aridir=${HOME}/ss > - version_in=${srcdir}/gdb/version.in > -fi > - > -if [ ! -r ${version_in} ] > -then > - echo ERROR: missing version file 1>&2 > - exit 1 > -fi > - > -date=`sed -n -e 's/^.* BFD_VERSION_DATE \(.*\)$/\1/p' $srcdir/bfd/version.h` > -version=`sed -e "s/DATE/$date/" < ${version_in}` > - > -# THIS HAS SUFFERED BIT ROT > -if ${check_warning_p} && test -d "${srcdir}" > -then > - echo `date`: Parsing compiler warnings 1>&2 > - cat ${root}/ari.compile | $AWK ' > -BEGIN { > - FS=":"; > -} > -/^[^:]*:[0-9]*: warning:/ { > - file = $1; > - #sub (/^.*\//, "", file); > - warning[file] += 1; > -} > -/^[^:]*:[0-9]*: error:/ { > - file = $1; > - #sub (/^.*\//, "", file); > - error[file] += 1; > -} > -END { > - for (file in warning) { > - print file ":warning:" level[file] > - } > - for (file in error) { > - print file ":error:" level[file] > - } > -} > -' > ${root}/ari.warning.bug > -fi > - > -# THIS HAS SUFFERED BIT ROT > -if ${check_indent_p} && test -d "${srcdir}" > -then > - printf "Analyzing file indentation:" 1>&2 > - ( cd "${srcdir}" && /bin/sh ${aridir}/gdb_find.sh ${project} | while read f > - do > - if /bin/sh ${aridir}/gdb_indent.sh < ${f} 2>/dev/null | cmp -s - ${f} > - then > - : > - else > - # ari.*.bug: :: : : > - echo "${f}:0: info: indent: Indentation does not match GNU indent output" > - fi > - done ) > ${wwwdir}/ari.indent.bug > - echo "" > -fi > - > -if ${check_source_p} && test -d "${srcdir}" > -then > - bugf=${wwwdir}/ari.source.bug > - oldf=${wwwdir}/ari.source.old > - srcf=${wwwdir}/ari.source.lines > - oldsrcf=${wwwdir}/ari.source.lines-old > - > - diff=${wwwdir}/ari.source.diff > - diffin=${diff}-in > - newf1=${bugf}1 > - oldf1=${oldf}1 > - oldpruned=${oldf1}-pruned > - newpruned=${newf1}-pruned > - > - cp -f ${bugf} ${oldf} > - cp -f ${srcf} ${oldsrcf} > - rm -f ${srcf} > - node=`uname -n` > - echo "`date`: Using source lines ${srcf}" 1>&2 > - echo "`date`: Checking source code" 1>&2 > - ( cd "${srcdir}" && /bin/sh ${aridir}/gdb_find.sh "${project}" | \ > - xargs /bin/sh ${aridir}/gdb_ari.sh -Werror -Wall --print-idx --src=${srcf} > - ) > ${bugf} > - # Remove things we are not interested in to signal by email > - # gdbarch changes are not important here > - # Also convert ` into ' to avoid command substitution in script below > - sed -e "/.*: gdbarch:.*/d" -e "s:\`:':g" ${oldf} > ${oldf1} > - sed -e "/.*: gdbarch:.*/d" -e "s:\`:':g" ${bugf} > ${newf1} > - # Remove line number info so that code inclusion/deletion > - # has no impact on the result > - sed -e "s/\([^:]*\):\([^:]*\):\(.*\)/\1:0:\3/" ${oldf1} > ${oldpruned} > - sed -e "s/\([^:]*\):\([^:]*\):\(.*\)/\1:0:\3/" ${newf1} > ${newpruned} > - # Use diff without option to get normal diff output that > - # is reparsed after > - diff ${oldpruned} ${newpruned} > ${diffin} > - # Only keep new warnings > - sed -n -e "/^>.*/p" ${diffin} > ${diff} > - sedscript=${wwwdir}/sedscript > - script=${wwwdir}/script > - sed -n -e "s|\(^[0-9,]*\)a\(.*\)|echo \1a\2 \n \ > - sed -n \'\2s:\\\\(.*\\\\):> \\\\1:p\' ${newf1}|p" \ > - -e "s|\(^[0-9,]*\)d\(.*\)|echo \1d\2\n \ > - sed -n \'\1s:\\\\(.*\\\\):< \\\\1:p\' ${oldf1}|p" \ > - -e "s|\(^[0-9,]*\)c\(.*\)|echo \1c\2\n \ > - sed -n \'\1s:\\\\(.*\\\\):< \\\\1:p\' ${oldf1} \n \ > - sed -n \"\2s:\\\\(.*\\\\):> \\\\1:p\" ${newf1}|p" \ > - ${diffin} > ${sedscript} > - ${SHELL} ${sedscript} > ${wwwdir}/message > - sed -n \ > - -e "s;\(.*\);echo \\\"\1\\\";p" \ > - -e "s;.*< \([^:]*\):\([0-9]*\):.*;grep \"^\1:\2:\" ${oldsrcf};p" \ > - -e "s;.*> \([^:]*\):\([0-9]*\):.*;grep \"^\1:\2:\" ${srcf};p" \ > - ${wwwdir}/message > ${script} > - ${SHELL} ${script} > ${wwwdir}/mail-message > - if [ "x${branch}" != "x" ]; then > - email_suffix="`date` in ${branch}" > - else > - email_suffix="`date`" > - fi > - > -fi > - > - > - > - > -if ${check_doschk_p} && test -d "${srcdir}" > -then > - echo "`date`: Checking for doschk" 1>&2 > - rm -f "${wwwdir}"/ari.doschk.* > - fnchange_lst="${srcdir}"/gdb/config/djgpp/fnchange.lst > - fnchange_awk="${wwwdir}"/ari.doschk.awk > - doschk_in="${wwwdir}"/ari.doschk.in > - doschk_out="${wwwdir}"/ari.doschk.out > - doschk_bug="${wwwdir}"/ari.doschk.bug > - doschk_char="${wwwdir}"/ari.doschk.char > - > - # Transform fnchange.lst into fnchange.awk. The program DJTAR > - # does a textual substitution of each file name using the list. > - # Generate an awk script that does the equivalent - matches an > - # exact line and then outputs the replacement. > - > - sed -e 's;@[^@]*@[/]*\([^ ]*\) @[^@]*@[/]*\([^ ]*\);\$0 == "\1" { print "\2"\; next\; };' \ > - < "${fnchange_lst}" > "${fnchange_awk}" > - echo '{ print }' >> "${fnchange_awk}" > - > - # Do the raw analysis - transform the list of files into the DJGPP > - # equivalents putting it in the .in file > - ( cd "${srcdir}" && find * \ > - -name '*.info-[0-9]*' -prune \ > - -o -name tcl -prune \ > - -o -name itcl -prune \ > - -o -name tk -prune \ > - -o -name libgui -prune \ > - -o -name tix -prune \ > - -o -name dejagnu -prune \ > - -o -name expect -prune \ > - -o -type f -print ) \ > - | $AWK -f ${fnchange_awk} > ${doschk_in} > - > - # Start with a clean slate > - rm -f ${doschk_bug} > - > - # Check for any invalid characters. > - grep '[\+\,\;\=\[\]\|\<\>\\\"\:\?\*]' < ${doschk_in} > ${doschk_char} > - # ari.*.bug: :: : : > - sed < ${doschk_char} >> ${doschk_bug} \ > - -e s'/$/:0: dos: DOSCHK: Invalid DOS character/' > - > - # Magic to map ari.doschk.out to ari.doschk.bug goes here > - doschk < ${doschk_in} > ${doschk_out} > - cat ${doschk_out} | $AWK >> ${doschk_bug} ' > -BEGIN { > - state = 1; > - invalid_dos = state++; bug[invalid_dos] = "invalid DOS file name"; category[invalid_dos] = "dos"; > - same_dos = state++; bug[same_dos] = "DOS 8.3"; category[same_dos] = "dos"; > - same_sysv = state++; bug[same_sysv] = "SysV"; > - long_sysv = state++; bug[long_sysv] = "long SysV"; > - internal = state++; bug[internal] = "internal doschk"; category[internal] = "internal"; > - state = 0; > -} > -/^$/ { state = 0; next; } > -/^The .* not valid DOS/ { state = invalid_dos; next; } > -/^The .* same DOS/ { state = same_dos; next; } > -/^The .* same SysV/ { state = same_sysv; next; } > -/^The .* too long for SysV/ { state = long_sysv; next; } > -/^The .* / { state = internal; next; } > - > -NF == 0 { next } > - > -NF == 3 { name = $1 ; file = $3 } > -NF == 1 { file = $1 } > -NF > 3 && $2 == "-" { file = $1 ; name = gensub(/^.* - /, "", 1) } > - > -state == same_dos { > - # ari.*.bug: :: : : > - print file ":0: " category[state] ": " \ > - name " " bug[state] " " " dup: " \ > - " DOSCHK - the names " name " and " file " resolve to the same" \ > - " file on a " bug[state] \ > - " system.
For DOS, this can be fixed by modifying the file" \ > - " fnchange.lst." > - next > -} > -state == invalid_dos { > - # ari.*.bug: :: : : > - print file ":0: " category[state] ": " name ": DOSCHK - " name > - next > -} > -state == internal { > - # ari.*.bug: :: : : > - print file ":0: " category[state] ": " bug[state] ": DOSCHK - a " \ > - bug[state] " problem" > -} > -' > -fi > - > - > - > -if ${check_werror_p} && test -d "${srcdir}" > -then > - echo "`date`: Checking Makefile.in for non- -Werror rules" > - rm -f ${wwwdir}/ari.werror.* > - cat "${srcdir}/${project}/Makefile.in" | $AWK > ${wwwdir}/ari.werror.bug ' > -BEGIN { > - count = 0 > - cont_p = 0 > - full_line = "" > -} > -/^[-_[:alnum:]]+\.o:/ { > - file = gensub(/.o:.*/, "", 1) ".c" > -} > - > -/[^\\]\\$/ { gsub (/\\$/, ""); full_line = full_line $0; cont_p = 1; next; } > -cont_p { $0 = full_line $0; cont_p = 0; full_line = ""; } > - > -/\$\(COMPILE\.pre\)/ { > - print file " has line " $0 > - if (($0 !~ /\$\(.*ERROR_CFLAGS\)/) && ($0 !~ /\$\(INTERNAL_CFLAGS\)/)) { > - # ari.*.bug: :: : : > - print "'"${project}"'/" file ":0: info: Werror: The file is not being compiled with -Werror" > - } > -} > -' > -fi > - > - > -# From the warnings, generate the doc and indexed bug files > -if ${update_doc_p} > -then > - cd ${wwwdir} > - rm -f ari.doc ari.idx ari.doc.bug > - # Generate an extra file containing all the bugs that the ARI can detect. > - /bin/sh ${aridir}/gdb_ari.sh -Werror -Wall --print-idx --print-doc >> ari.doc.bug > - cat ari.*.bug | $AWK > ari.idx ' > -BEGIN { > - FS=": *" > -} > -{ > - # ari.*.bug: :: : : > - file = $1 > - line = $2 > - category = $3 > - bug = $4 > - if (! (bug in cat)) { > - cat[bug] = category > - # strip any trailing .... (supplement) > - doc[bug] = gensub(/ \([^\)]*\)$/, "", 1, $5) > - count[bug] = 0 > - } > - if (file != "") { > - count[bug] += 1 > - # ari.*.idx: :: > - print bug ":" file ":" category > - } > - # Also accumulate some categories as obsolete > - if (category == "deprecated") { > - # ari.*.idx: :: > - if (file != "") { > - print category ":" file ":" "obsolete" > - } > - #count[category]++ > - #doc[category] = "Contains " category " code" > - } > -} > -END { > - i = 0; > - for (bug in count) { > - # ari.*.doc: ::: > - print bug ":" count[bug] ":" cat[bug] ":" doc[bug] >> "ari.doc" > - } > -} > -' > -fi > - > - > -# print_toc BIAS MIN_COUNT CATEGORIES TITLE > - > -# Print a table of contents containing the bugs CATEGORIES. If the > -# BUG count >= MIN_COUNT print it in the table-of-contents. If > -# MIN_COUNT is non -ve, also include a link to the table.Adjust the > -# printed BUG count by BIAS. > - > -all= > - > -print_toc () > -{ > - bias="$1" ; shift > - min_count="$1" ; shift > - > - all=" $all $1 " > - categories="" > - for c in $1; do > - categories="${categories} categories[\"${c}\"] = 1 ;" > - done > - shift > - > - title="$@" ; shift > - > - echo "

" >> ${newari} > - echo "" | tr '[A-Z]' '[a-z]' >> ${newari} > - echo "

${title}

" >> ${newari} > - cat >> ${newari} # description > - > - cat >> ${newari} < -

> - > - > -EOF > - # ari.*.doc: ::: > - cat ${wwwdir}/ari.doc \ > - | sort -t: +1rn -2 +0d \ > - | $AWK >> ${newari} ' > -BEGIN { > - FS=":" > - '"$categories"' > - MIN_COUNT = '${min_count}' > - BIAS = '${bias}' > - total = 0 > - nr = 0 > -} > -{ > - # ari.*.doc: ::: > - bug = $1 > - count = $2 > - category = $3 > - doc = $4 > - if (count < MIN_COUNT) next > - if (!(category in categories)) next > - nr += 1 > - total += count > - printf "" > - printf "" > - printf "", bug, count + BIAS > - } else { > - printf "%d", count + BIAS > - } > - printf "" > - printf "", doc > - printf "" > - print "" > -} > -END { > - print "" > -} > -' > -cat >> ${newari} < -
BUGTotalDescription
", bug > - printf "%s", gensub(/_/, " ", "g", bug) > - printf "" > - if (count > 0 && MIN_COUNT >= 0) { > - printf "%d%s
" nr "" total "
> -

> -EOF > -} > - > - > -print_table () > -{ > - categories="" > - for c in $1; do > - categories="${categories} categories[\"${c}\"] = 1 ;" > - done > - # Remember to prune the dir prefix from projects files > - # ari.*.idx: :: > - cat ${wwwdir}/ari.idx | $AWK >> ${newari} ' > -function qsort (table, > - middle, tmp, left, nr_left, right, nr_right, result) { > - middle = "" > - for (middle in table) { break; } > - nr_left = 0; > - nr_right = 0; > - for (tmp in table) { > - if (tolower(tmp) < tolower(middle)) { > - nr_left++ > - left[tmp] = tmp > - } else if (tolower(tmp) > tolower(middle)) { > - nr_right++ > - right[tmp] = tmp > - } > - } > - #print "qsort " nr_left " " middle " " nr_right > "/dev/stderr" > - result = "" > - if (nr_left > 0) { > - result = qsort(left) SUBSEP > - } > - result = result middle > - if (nr_right > 0) { > - result = result SUBSEP qsort(right) > - } > - return result > -} > -function print_heading (nb_file, where, bug_i) { > - print "" > - print "" > - print "File " nb_file "" > - print "Total" > - print "" > - for (bug_i = 1; bug_i <= nr_bug; bug_i++) { > - bug = i2bug[bug_i]; > - printf "" > - # The title names are offset by one. Otherwise, when the browser > - # jumps to the name it leaves out half the relevant column. > - #printf " ", bug > - printf " ", i2bug[bug_i-1] > - printf "", bug > - printf "%s", gensub(/_/, " ", "g", bug) > - printf "\n" > - printf "\n" > - } > - #print "" > - printf " \n", i2bug[bug_i-1] > - print "Total" > - print "File " nb_file "" > - print "" > -} > -function print_totals (where, bug_i) { > - print "Totals" > - printf "" > - printf "%s", total > - printf ">" > - printf "\n" > - print ""; > - for (bug_i = 1; bug_i <= nr_bug; bug_i++) { > - bug = i2bug[bug_i]; > - printf "" > - printf "" > - printf "%d", bug, bug_total[bug] > - printf ""; > - printf "^", prev_file[bug, where], bug > - printf "v", next_file[bug, where], bug > - printf " ", where, bug > - printf ""; > - print "" > - } > - print "" > - printf "" > - printf "%s", total > - printf "<" > - printf "\n" > - print "Totals" > - print "" > -} > -BEGIN { > - FS = ":" > - '"${categories}"' > - nr_file = 0; > - nr_bug = 0; > -} > -{ > - # ari.*.idx: :: > - bug = $1 > - file = $2 > - category = $3 > - # Interested in this > - if (!(category in categories)) next > - # Totals > - db[bug, file] += 1 > - bug_total[bug] += 1 > - file_total[file] += 1 > - total += 1 > -} > -END { > - > - # Sort the files and bugs creating indexed lists. > - nr_bug = split(qsort(bug_total), i2bug, SUBSEP); > - nr_file = split(qsort(file_total), i2file, SUBSEP); > - > - # Dummy entries for first/last > - i2file[0] = 0 > - i2file[-1] = -1 > - i2bug[0] = 0 > - i2bug[-1] = -1 > - > - # Construct a cycle of next/prev links. The file/bug "0" and "-1" > - # are used to identify the start/end of the cycle. Consequently, > - # prev(0) = -1 (prev of start is the end) and next(-1) = 0 (next > - # of end is the start). > - > - # For all the bugs, create a cycle that goes to the prev / next file. > - for (bug_i = 1; bug_i <= nr_bug; bug_i++) { > - bug = i2bug[bug_i] > - prev = 0 > - prev_file[bug, 0] = -1 > - next_file[bug, -1] = 0 > - for (file_i = 1; file_i <= nr_file; file_i++) { > - file = i2file[file_i] > - if ((bug, file) in db) { > - prev_file[bug, file] = prev > - next_file[bug, prev] = file > - prev = file > - } > - } > - prev_file[bug, -1] = prev > - next_file[bug, prev] = -1 > - } > - > - # For all the files, create a cycle that goes to the prev / next bug. > - for (file_i = 1; file_i <= nr_file; file_i++) { > - file = i2file[file_i] > - prev = 0 > - prev_bug[file, 0] = -1 > - next_bug[file, -1] = 0 > - for (bug_i = 1; bug_i <= nr_bug; bug_i++) { > - bug = i2bug[bug_i] > - if ((bug, file) in db) { > - prev_bug[file, bug] = prev > - next_bug[file, prev] = bug > - prev = bug > - } > - } > - prev_bug[file, -1] = prev > - next_bug[file, prev] = -1 > - } > - > - print "" > - print "" > - print_heading(nr_file, 0); > - print "" > - print_totals(0); > - print "" > - > - for (file_i = 1; file_i <= nr_file; file_i++) { > - file = i2file[file_i]; > - pfile = gensub(/^'${project}'\//, "", 1, file) > - print "" > - print "" > - print "" > - printf "\n" > - print "" > - for (bug_i = 1; bug_i <= nr_bug; bug_i++) { > - bug = i2bug[bug_i]; > - if ((bug, file) in db) { > - printf "" > - print "" > - } else { > - print "" > - #print "" > - } > - } > - print "" > - printf "\n" > - print "" > - print "" > - } > - > - print "" > - print_totals(-1) > - print "" > - print_heading(nr_file, -1); > - print "" > - print "" > - print "
" pfile "" > - printf "%s", file_total[file] > - printf ">", file, next_bug[file, 0] > - printf "" > - printf "%d", bug, db[bug, file] > - printf "^", prev_file[bug, file], bug > - printf "v", next_file[bug, file], bug > - printf " ", file, bug > - printf " " > - printf "%s", file_total[file] > - printf "<", file, prev_bug[file, -1] > - printf "" pfile "
" > - print "" > -} > -' > -} > - > - > -# Make the scripts available > -cp ${aridir}/gdb_*.sh ${wwwdir} > - > -nb_files=`cd "${srcdir}" && /bin/sh ${aridir}/gdb_find.sh "${project}" | wc -l` > - > -echo "Total number of tested files is $nb_files" > - > -if [ "x$debug_awk" = "x" ] > -then > - debug_awk=0 > -fi > - > -# Compute the ARI index - ratio of zero vs non-zero problems. > -indexes=`${AWK} -v debug=${debug_awk} -v nr="$nb_files" ' > -BEGIN { > - FS=":" > -} > -{ > - # ari.*.doc: ::: > - bug = $1; count = $2; category = $3; doc = $4 > - > - # legacy type error have at least one entry, > - #corresponding to the declaration. > - if (bug ~ /^legacy /) legacy++ > - # Idem for deprecated_XXX symbols/functions. > - if (bug ~ /^deprecated /) deprecated++ > - > - if (category !~ /^gdbarch$/) { > - bugs += count > - nrtests += 1 > - } > - if (count == 0) { > - oks++ > - } > -} > -END { > - if (debug == 1) { > - print "nb files: " nr > - print "tests/oks: " nrtests "/" oks > - print "bugs/tests: " bugs "/" nrtests > - print "bugs/oks: " bugs "/" oks > - print bugs "/ (" oks "+" legacy "+" deprecated ")" > - } > - # This value should be as low as possible > - print bugs / ( oks + legacy + deprecated ) > -} > -' ${wwwdir}/ari.doc` > - > -# Merge, generating the ARI tables. > -if ${update_web_p} > -then > - echo "Create the ARI table" 1>&2 > - oldari=${wwwdir}/old.html > - ari=${wwwdir}/index.html > - newari=${wwwdir}/new.html > - rm -f ${newari} ${newari}.gz > - cat <> ${newari} > - > - > -A.R. Index for GDB version ${version} > - > - > - > -

A.R. Index for GDB version ${version}

> - > - > - > - > - > -

${indexes}

> -

You can not take this seriously!

> - > -
> -Also available: > -most recent branch > -| > -current > -| > -last release > -
> - > -
> -Last updated: `date -u` > -
> -EOF > - > - print_toc 0 1 "internal regression" Critical < -Things previously eliminated but returned. This should always be empty. > -EOF > - > - print_table "regression code comment obsolete gettext" > - > - print_toc 0 0 code Code < -Coding standard problems, portability problems, readability problems. > -EOF > - > - print_toc 0 0 comment Comments < -Problems concerning comments in source files. > -EOF > - > - print_toc 0 0 gettext GetText < -Gettext related problems. > -EOF > - > - print_toc 0 -1 dos DOS 8.3 File Names < -File names with problems on 8.3 file systems. > -EOF > - > - print_toc -2 -1 deprecated Deprecated < -Mechanisms that have been replaced with something better, simpler, > -cleaner; or are no longer required by core-GDB. New code should not > -use deprecated mechanisms. Existing code, when touched, should be > -updated to use non-deprecated mechanisms. See obsolete and deprecate. > -(The declaration and definition are hopefully excluded from count so > -zero should indicate no remaining uses). > -EOF > - > - print_toc 0 0 obsolete Obsolete < -Mechanisms that have been replaced, but have not yet been marked as > -such (using the deprecated_ prefix). See deprecate and deprecated. > -EOF > - > - print_toc 0 -1 deprecate Deprecate < -Mechanisms that are a candidate for being made obsolete. Once core > -GDB no longer depends on these mechanisms and/or there is a > -replacement available, these mechanisms can be deprecated (adding the > -deprecated prefix) obsoleted (put into category obsolete) or deleted. > -See obsolete and deprecated. > -EOF > - > - print_toc -2 -1 legacy Legacy < -Methods used to prop up targets using targets that still depend on > -deprecated mechanisms. (The method's declaration and definition are > -hopefully excluded from count). > -EOF > - > - print_toc -2 -1 gdbarch Gdbarch < -Count of calls to the gdbarch set methods. (Declaration and > -definition hopefully excluded from count). > -EOF > - > - print_toc 0 -1 macro Macro < -Breakdown of macro definitions (and #undef) in configuration files. > -EOF > - > - print_toc 0 0 regression Fixed < -Problems that have been expunged from the source code. > -EOF > - > - # Check for invalid categories > - for a in $all; do > - all2="$all2 all[$a] = 1 ;" > - done > - cat ari.*.doc | $AWK >> ${newari} ' > -BEGIN { > - FS = ":" > - '"$all2"' > -} > -{ > - # ari.*.doc: ::: > - bug = $1 > - count = $2 > - category = $3 > - doc = $4 > - if (!(category in all)) { > - print "" category ": no documentation
" > - } > -} > -' > - > - cat >> ${newari} < -
> -Input files: > -`( cd ${wwwdir} && ls ari.*.bug ari.idx ari.doc ) | while read f > -do > - echo "${f}" > -done` > -
> - > -
> -Scripts: > -`( cd ${wwwdir} && ls *.sh ) | while read f > -do > - echo "${f}" > -done` > -
> - > - > - > - > -EOF > - > - for i in . .. ../..; do > - x=${wwwdir}/${i}/index.sh > - if test -x $x; then > - $x ${newari} > - break > - fi > - done > - > - gzip -c -v -9 ${newari} > ${newari}.gz > - > - cp ${ari} ${oldari} > - cp ${ari}.gz ${oldari}.gz > - cp ${newari} ${ari} > - cp ${newari}.gz ${ari}.gz > - > -fi # update_web_p > - > -# ls -l ${wwwdir} > - > -exit 0 > diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c > index 84b1480dbcb..114c608fde3 100644 > --- a/gdb/dwarf2/read.c > +++ b/gdb/dwarf2/read.c > @@ -17404,7 +17404,7 @@ get_signatured_type (struct die_info *die, ULONGEST signature, > > static struct type * > get_DW_AT_signature_type (struct die_info *die, const struct attribute *attr, > - struct dwarf2_cu *cu) /* ARI: editCase function */ > + struct dwarf2_cu *cu) > { > /* Yes, DW_AT_signature can use a non-ref_sig8 reference. */ > if (attr->form_is_ref ()) > diff --git a/gdb/event-top.c b/gdb/event-top.c > index 48dfb34c47f..0fb6eafec57 100644 > --- a/gdb/event-top.c > +++ b/gdb/event-top.c > @@ -1038,7 +1038,7 @@ handle_fatal_signal (int sig) > #ifdef SIGABRT > signal (SIGABRT, SIG_DFL); > #endif > - abort (); /* ARI: abort */ > + abort (); > } > > /* The SIGSEGV handler for this thread, or NULL if there is none. GDB > diff --git a/gdb/guile/scm-param.c b/gdb/guile/scm-param.c > index ee743217828..c94f8ef8f7f 100644 > --- a/gdb/guile/scm-param.c > +++ b/gdb/guile/scm-param.c > @@ -250,7 +250,7 @@ pascm_make_param_smob (void) > SCM p_scm; > > p_smob->cmd_class = no_class; > - p_smob->type = var_boolean; /* ARI: var_boolean */ > + p_smob->type = var_boolean; > p_smob->set_func = SCM_BOOL_F; > p_smob->show_func = SCM_BOOL_F; > p_scm = scm_new_smob (parameter_smob_tag, (scm_t_bits) p_smob); > @@ -614,7 +614,7 @@ compute_enum_list (SCM enum_values_scm, int arg_pos, const char *func_name) > > static const scheme_integer_constant parameter_types[] = > { > - { "PARAM_BOOLEAN", param_boolean }, /* ARI: param_boolean */ > + { "PARAM_BOOLEAN", param_boolean }, > { "PARAM_AUTO_BOOLEAN", param_auto_boolean }, > { "PARAM_ZINTEGER", param_zinteger }, > { "PARAM_UINTEGER", param_uinteger }, > @@ -993,7 +993,7 @@ gdbscm_make_parameter (SCM name_scm, SCM rest) > char *s; > char *name; > int cmd_class = no_class; > - int param_type = param_boolean; /* ARI: param_boolean */ > + int param_type = param_boolean; > SCM enum_list_scm = SCM_BOOL_F; > SCM set_func = SCM_BOOL_F, show_func = SCM_BOOL_F; > char *doc = NULL, *set_doc = NULL, *show_doc = NULL; > diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c > index 35f55c3dbd0..c5f7ff57e1a 100644 > --- a/gdb/python/py-param.c > +++ b/gdb/python/py-param.c > @@ -81,7 +81,7 @@ static struct { > int value; > } parm_constants[] = > { > - { "PARAM_BOOLEAN", param_boolean }, /* ARI: param_boolean */ > + { "PARAM_BOOLEAN", param_boolean }, > { "PARAM_AUTO_BOOLEAN", param_auto_boolean }, > { "PARAM_UINTEGER", param_uinteger }, > { "PARAM_INTEGER", param_integer }, > @@ -858,7 +858,7 @@ parmpy_init (PyObject *self, PyObject *args, PyObject *kwds) > return -1; > } > > - if (parmclass != param_boolean /* ARI: param_boolean */ > + if (parmclass != param_boolean > && parmclass != param_auto_boolean > && parmclass != param_uinteger && parmclass != param_integer > && parmclass != param_string && parmclass != param_string_noescape > diff --git a/gdb/target-float.c b/gdb/target-float.c > index dd64b23636b..31b5ac642a7 100644 > --- a/gdb/target-float.c > +++ b/gdb/target-float.c > @@ -646,7 +646,7 @@ host_float_ops::from_target (const struct floatformat *fmt, > { > double dto; > > - floatformat_to_double /* ARI: floatformat_to_double */ > + floatformat_to_double > (fmt->split_half ? fmt->split_half : fmt, from, &dto); > *to = (T) dto; > return; > diff --git a/gdb/unittests/format_pieces-selftests.c b/gdb/unittests/format_pieces-selftests.c > index c5f3cf74f1d..96d3d478399 100644 > --- a/gdb/unittests/format_pieces-selftests.c > +++ b/gdb/unittests/format_pieces-selftests.c > @@ -74,7 +74,7 @@ test_format_specifier () > { > /* The format string here ends with a % sequence, to ensure we don't > see a trailing empty literal piece. */ > - check ("Hello\\t %d%llx%%d%d", /* ARI: %ll */ > + check ("Hello\\t %d%llx%%d%d", > { > {"Hello\t ", literal_piece, 0}, > {"%d", int_arg, 0}, > @@ -105,7 +105,7 @@ test_gdb_formats () > static void > test_format_int_sizes () > { > - check ("Hello\\t %hu%lu%llu%zu%tu", /* ARI: %ll */ > + check ("Hello\\t %hu%lu%llu%zu%tu", > { > {"Hello\t ", literal_piece, 0}, > {"%hu", int_arg, 0}, > @@ -115,7 +115,7 @@ test_format_int_sizes () > {"%tu", ptrdiff_t_arg, 0}, > }); > > - check ("Hello\\t %hx%lx%llx%zx%tx", /* ARI: %ll */ > + check ("Hello\\t %hx%lx%llx%zx%tx", > { > {"Hello\t ", literal_piece, 0}, > {"%hx", int_arg, 0}, > @@ -125,7 +125,7 @@ test_format_int_sizes () > {"%tx", ptrdiff_t_arg, 0}, > }); > > - check ("Hello\\t %ho%lo%llo%zo%to", /* ARI: %ll */ > + check ("Hello\\t %ho%lo%llo%zo%to", > { > {"Hello\t ", literal_piece, 0}, > {"%ho", int_arg, 0}, > @@ -135,7 +135,7 @@ test_format_int_sizes () > {"%to", ptrdiff_t_arg, 0}, > }); > > - check ("Hello\\t %hd%ld%lld%zd%td", /* ARI: %ll */ > + check ("Hello\\t %hd%ld%lld%zd%td", > { > {"Hello\t ", literal_piece, 0}, > {"%hd", int_arg, 0}, > diff --git a/gdb/utils.c b/gdb/utils.c > index 4a46ed34f4c..96c60544213 100644 > --- a/gdb/utils.c > +++ b/gdb/utils.c > @@ -214,7 +214,7 @@ abort_with_message (const char *msg) > else > gdb_puts (msg, gdb_stderr); > > - abort (); /* ARI: abort */ > + abort (); > } > > /* Dump core trying to increase the core soft limit to hard limit first. */ > @@ -233,7 +233,7 @@ dump_core (void) > a backtrace to the console here. */ > signal (SIGABRT, SIG_DFL); > > - abort (); /* ARI: abort */ > + abort (); > } > > /* Check whether GDB will be able to dump core using the dump_core > @@ -383,7 +383,7 @@ internal_vproblem (struct internal_problem *problem, > does not fix this problem. This is the solution suggested > at http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509. */ > if (write (STDERR_FILENO, msg, sizeof (msg)) != sizeof (msg)) > - abort (); /* ARI: abort */ > + abort (); > exit (1); > } > } > diff --git a/gdbsupport/common-utils.cc b/gdbsupport/common-utils.cc > index cc1344d8159..3ae3afcc380 100644 > --- a/gdbsupport/common-utils.cc > +++ b/gdbsupport/common-utils.cc > @@ -103,7 +103,7 @@ string_printf (const char* fmt, ...) > /* C++11 and later guarantee std::string uses contiguous memory and > always includes the terminating '\0'. */ > va_start (vp, fmt); > - vsprintf (&str[0], fmt, vp); /* ARI: vsprintf */ > + vsprintf (&str[0], fmt, vp); > va_end (vp); > > return str; > @@ -125,7 +125,7 @@ string_vprintf (const char* fmt, va_list args) > > /* C++11 and later guarantee std::string uses contiguous memory and > always includes the terminating '\0'. */ > - vsprintf (&str[0], fmt, args); /* ARI: vsprintf */ > + vsprintf (&str[0], fmt, args); > > return str; > } > @@ -163,7 +163,7 @@ string_vappendf (std::string &str, const char *fmt, va_list args) > > /* C++11 and later guarantee std::string uses contiguous memory and > always includes the terminating '\0'. */ > - vsprintf (&str[curr_size], fmt, args); /* ARI: vsprintf */ > + vsprintf (&str[curr_size], fmt, args); > > return str; > } > diff --git a/gdbsupport/gdb-xfree.h b/gdbsupport/gdb-xfree.h > index aa5403de58a..fd14bf5748f 100644 > --- a/gdbsupport/gdb-xfree.h > +++ b/gdbsupport/gdb-xfree.h > @@ -32,9 +32,9 @@ data type. Use operator delete instead."); > > if (ptr != NULL) > #ifdef GNULIB_NAMESPACE > - GNULIB_NAMESPACE::free (ptr); /* ARI: free */ > + GNULIB_NAMESPACE::free (ptr); > #else > - free (ptr); /* ARI: free */ > + free (ptr); > #endif > } > > diff --git a/gdbsupport/new-op.cc b/gdbsupport/new-op.cc > index 24bd480078d..a0185f6c862 100644 > --- a/gdbsupport/new-op.cc > +++ b/gdbsupport/new-op.cc > @@ -55,7 +55,7 @@ operator new (std::size_t sz) > if (sz == 0) > sz = 1; > > - void *p = malloc (sz); /* ARI: malloc */ > + void *p = malloc (sz); > if (p == NULL) > { > /* If the user decides to continue debugging, throw a > @@ -82,7 +82,7 @@ operator new (std::size_t sz, const std::nothrow_t&) noexcept > /* malloc (0) is unpredictable; avoid it. */ > if (sz == 0) > sz = 1; > - return malloc (sz); /* ARI: malloc */ > + return malloc (sz); > } > > void * > > base-commit: b43d0708ad4a8f689040f0da40e5ca2de742dc76