From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eu-smtp-delivery-151.mimecast.com (eu-smtp-delivery-151.mimecast.com [185.58.86.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C23E7BA28 for ; Wed, 26 Jul 2023 09:19:53 +0000 (UTC) Received: from AcuMS.aculab.com (156.67.243.121 [156.67.243.121]) by relay.mimecast.com with ESMTP with both STARTTLS and AUTH (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id uk-mta-69-R1wwbrKTMx24VHmEivtBvw-1; Wed, 26 Jul 2023 10:19:49 +0100 X-MC-Unique: R1wwbrKTMx24VHmEivtBvw-1 Received: from AcuMS.Aculab.com (10.202.163.6) by AcuMS.aculab.com (10.202.163.6) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Wed, 26 Jul 2023 10:19:48 +0100 Received: from AcuMS.Aculab.com ([::1]) by AcuMS.aculab.com ([::1]) with mapi id 15.00.1497.048; Wed, 26 Jul 2023 10:19:48 +0100 From: David Laight To: 'kernel test robot' , "'linux-kernel@vger.kernel.org'" , 'Andy Shevchenko' , 'Andrew Morton' , "'Matthew Wilcox (Oracle)'" , 'Christoph Hellwig' , "'Jason A. Donenfeld'" CC: "llvm@lists.linux.dev" , "oe-kbuild-all@lists.linux.dev" , "Linux Memory Management List" , "'maz@kernel.org'" , Rob Herring Subject: RE: [PATCH next resend 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness. Thread-Topic: [PATCH next resend 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness. Thread-Index: Adm+7j8pPhAgcq+TRICTXJcSfHQLRAAL9FKAACBy3mA= Date: Wed, 26 Jul 2023 09:19:48 +0000 Message-ID: <6bed42e871e74e898b400a404ec6d142@AcuMS.aculab.com> References: <202307260256.nzImScXA-lkp@intel.com> In-Reply-To: <202307260256.nzImScXA-lkp@intel.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable > From: kernel test robot > Sent: 25 July 2023 19:33 ... >=20 > All errors (new ones prefixed by >>): >=20 > >> drivers/irqchip/irq-mips-cpu.c:288:1: error: call to undeclared functi= on '__typecheck'; ISO C99 and > later do not support implicit function declarations [-Wimplicit-function-= declaration] > 288 | IRQCHIP_DECLARE(cpu_intc, "mti,cpu-interrupt-controller", mips= _cpu_irq_of_init); > | ^ > include/linux/irqchip.h:37:38: note: expanded from macro 'IRQCHIP_DECL= ARE' > 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init= _cb(fn)) > | ^ > include/linux/irqchip.h:24:3: note: expanded from macro 'typecheck_irq= _init_cb' > 24 | (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn) > | ^ > >> drivers/irqchip/irq-mips-cpu.c:288:1: error: initializer element is no= t a compile-time constant > 288 | IRQCHIP_DECLARE(cpu_intc, "mti,cpu-interrupt-controller", mips= _cpu_irq_of_init); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~= ~~~~~~~~~~~~~~~~~ > include/linux/irqchip.h:37:2: note: expanded from macro 'IRQCHIP_DECLA= RE' > 37 | OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init= _cb(fn)) > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~= ~~~~~~~~ > include/linux/of.h:1493:3: note: expanded from macro 'OF_DECLARE_2' > 1493 | _OF_DECLARE(table, name, compat, fn, of_init_f= n_2) > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~= ~~~~ > include/linux/of.h:1481:2: note: expanded from macro '_OF_DECLARE' > 1481 | _OF_DECLARE_STUB(table, name, compat, fn, fn_type) > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > include/linux/of.h:1470:16: note: expanded from macro '_OF_DECLARE_STU= B' > 1470 | .data =3D (fn =3D=3D (fn_type)NULL) ? fn = : fn } > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It looks like irqchip.h is using __typecheck() which is really an internal part of the implementation of min() and max(). The patched version doesn't use it - hence the build fail. I can re-instate it, but this all looks wrong to me. The type of typecheck_irq_init_cb is the same as that of fn_type (although they are defined separately). Both headers seem to be testing the type - and it must match both. So if the test in of.h worked the one in irqchip.h wouldn't have been added= . So I suspect it doesn't actually do anything - the RHS is NULL, the type probably doesn't matter. Possibly: =09=09.data =3D {sizeof ((fn) =3D=3D (fn_type)(fn)) ? fn : fn } would actually generate the required compile-time error. =09David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1= PT, UK Registration No: 1397386 (Wales)