From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1879) id D48763858D28; Tue, 31 Jan 2023 18:22:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D48763858D28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1675189323; bh=IFBHXOb00Scxmhp0eqBpHvL4TA3nZqqxxP22mb3ylnk=; h=From:To:Subject:Date:From; b=yx0l64Aj1FJKz56jjNq/h+YFU6DyCcuFytAn/gJ7bo2H0t+5zCP5tnE/DFd7YvzYb 5nLIhUvDDekYX2kqif4ktcaAkU08WCAYDqlvh+q2Hn2SvxJZJpIusGxld2U71ucf5P hTbm0acmnEmmwXMA3lO3TH6tN80rn1tM1ipeA1Hs= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Simon Marchi To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdbsupport: allow passing nullptr to checked_static_cast X-Act-Checkin: binutils-gdb X-Git-Author: Simon Marchi X-Git-Refname: refs/heads/master X-Git-Oldrev: 95cbab2bebf7e810eded3e16ae7e82b13f4d2493 X-Git-Newrev: d7789889b1839c3c0f64c6738b0d8517ccead049 Message-Id: <20230131182203.D48763858D28@sourceware.org> Date: Tue, 31 Jan 2023 18:22:03 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3Dd7789889b183= 9c3c0f64c6738b0d8517ccead049 commit d7789889b1839c3c0f64c6738b0d8517ccead049 Author: Simon Marchi Date: Tue Jan 31 10:57:20 2023 -0500 gdbsupport: allow passing nullptr to checked_static_cast =20 Both static_cast and dynamic_cast handle nullptr (they return nullptr), so I think checked_static_cast should too. This will allow doing a null check after a checked_static_cast: =20 cooked_index_vector *table =3D (gdb::checked_static_cast (per_bfd->index_table.get ())); if (table !=3D nullptr) return; =20 Change-Id: If5c3134e63696f8e417c87b5f3901240c9f7ea97 Diff: --- gdbsupport/gdb-checked-static-cast.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gdbsupport/gdb-checked-static-cast.h b/gdbsupport/gdb-checked-= static-cast.h index cc298733fad..bc75244bddd 100644 --- a/gdbsupport/gdb-checked-static-cast.h +++ b/gdbsupport/gdb-checked-static-cast.h @@ -54,6 +54,9 @@ checked_static_cast (V *v) "types must be related"); =20 #ifdef DEVELOPMENT + if (v =3D=3D nullptr) + return nullptr; + T result =3D dynamic_cast (v); gdb_assert (result !=3D nullptr); #else