{"id":2219848,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2219848/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/ff801c38-75fc-4876-8733-291a3cee33d2@gmail.com/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.2/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<ff801c38-75fc-4876-8733-291a3cee33d2@gmail.com>","list_archive_url":null,"date":"2026-04-04T22:30:26","name":"c++: Fix unary negation of nullptr [PR123087]","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"01bfe4399a9d9d9af2aab8379de7c13fc8d6682c","submitter":{"id":91010,"url":"http://patchwork.ozlabs.org/api/1.2/people/91010/?format=json","name":"Eczbek","email":"eczbek.void@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/ff801c38-75fc-4876-8733-291a3cee33d2@gmail.com/mbox/","series":[{"id":498752,"url":"http://patchwork.ozlabs.org/api/1.2/series/498752/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=498752","date":"2026-04-04T22:30:26","name":"c++: Fix unary negation of nullptr [PR123087]","version":1,"mbox":"http://patchwork.ozlabs.org/series/498752/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2219848/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219848/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=B1DgJxIM;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=B1DgJxIM","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","sourceware.org; spf=pass smtp.mailfrom=gmail.com","server2.sourceware.org;\n arc=none smtp.remote-ip=209.85.160.65"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fp9Kb4hr5z1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 05 Apr 2026 08:30:58 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 3197D4BA23D0\n\tfor <incoming@patchwork.ozlabs.org>; Sat,  4 Apr 2026 22:30:56 +0000 (GMT)","from mail-oa1-f65.google.com (mail-oa1-f65.google.com\n [209.85.160.65])\n by sourceware.org (Postfix) with ESMTPS id 57B8C4BA2E2F\n for <gcc-patches@gcc.gnu.org>; Sat,  4 Apr 2026 22:30:30 +0000 (GMT)","by mail-oa1-f65.google.com with SMTP id\n 586e51a60fabf-40ea36b56b7so2392184fac.3\n for <gcc-patches@gcc.gnu.org>; Sat, 04 Apr 2026 15:30:30 -0700 (PDT)","from [10.134.55.64] (108-216-84-41.lightspeed.stlsmo.sbcglobal.net.\n [108.216.84.41]) by smtp.gmail.com with ESMTPSA id\n 586e51a60fabf-422eaed6647sm8480365fac.2.2026.04.04.15.30.27\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Sat, 04 Apr 2026 15:30:28 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 3197D4BA23D0","OpenDKIM Filter v2.11.0 sourceware.org 57B8C4BA2E2F"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 57B8C4BA2E2F","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 57B8C4BA2E2F","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775341830; cv=none;\n b=wY94u6phKjT/QGHA6yODllNq9HxB8pDYDx1CXLDCOdEuNBza/9xFthga2X8W04ztQd4IhEWpRpHf70YCSD93N2/++bF1wiI5HVZW0ZxI4mYAjqd32aqnWWfx0SLIdhqI++f+pmiaQt/gFpGldWzNAME60zt1IXW4GZTps3TLzrM=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775341830; c=relaxed/simple;\n bh=W9ALUIAzrceViAXniAh19Inz4LXf20tKziV2gzj6cLQ=;\n h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject;\n b=vUm53+nddtTdOPo9Ag6vVSTRiNg1fD0s+w/EvgHoIUAKHvPC48VmVg4yzDYhUkNZ4yNjZkjvOHE31L3NdNmfZkYr6MDJGGGqyyN+VugZEEe9iMHYBJPvNetI72uHtNAmSqfxOIthLQFAe+6dRCEntYaVIZfl/Q+wl9Xw68El7iI=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775341829; x=1775946629; darn=gcc.gnu.org;\n h=content-transfer-encoding:subject:from:cc:to:content-language\n :user-agent:mime-version:date:message-id:from:to:cc:subject:date\n :message-id:reply-to;\n bh=zFWa3qcL3Np9r4eevLAL/GiA2A7KH25CYfYsTymVJsQ=;\n b=B1DgJxIMuc3eqx4AjMlrUVAWLz16dZ/GwsMbqFilrT3x96AdmOp3pHTBIbwOeGiB/V\n ilqNENFZzAUwYHiaeisty7X4lror+RTw/O1cIknHpjZ5cPcjUlfCrR6S1ts3ChvjfIPD\n icJAPz/k7Zi2muO1OFM7mIez5smLydsPLsOz4HAh3eMw0ouEKg5ZrEqwLZDkxMaL7XVj\n zU+J6uxmZMiGPP2MuS3jTKbwapgppU/nNRRirC9Rv7YUecFFSuo394ITJCzD2JUhT0xK\n 9T/IQLN5IXCQiBcYaGHefZGieEbHI0Txwt4K2vQ3IYTpZ2L9JnBiEAEmXEeA6jJpjOc7\n Ig6A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775341829; x=1775946629;\n h=content-transfer-encoding:subject:from:cc:to:content-language\n :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state\n :from:to:cc:subject:date:message-id:reply-to;\n bh=zFWa3qcL3Np9r4eevLAL/GiA2A7KH25CYfYsTymVJsQ=;\n b=flAG2zLHQ692xArfccj55Yfjqo+iK8Bzn0dTxZlo/PC1JnV8Aa7FNQhH1I4yCb7TvF\n YnWC3kORJfu4rS2vK9yjZTK7DS7RKq2rhTIpUDE9I3tGN1YpMWxInU1Qzyh8h6oc6QJu\n xkOygdwtX1eJbyKcV9kPARpYkJzkE8fSWnggycv4wpqRtTiKdBxFspqS67HqCxwoB38d\n G6vHopYsNm+3z+rKE6Idi29cG3jpTXWaaD8ap5t8pHFxyZ33nm89X8mQZt15HJr93j2c\n U/DO16bs/JSwqpICqyB+Z6qxWJSyClTZ/uAyUcdyGGblQHwVZXGuNbpWVgCtdprJAJHJ\n vjbA==","X-Gm-Message-State":"AOJu0YxHPhr7EniLNHzyAD5K1rHBu8OP3wLBjy5+ZSmSWfkrTnQLeREW\n IkmtbMA1Fnez+LFnvH6EsbjnQVsGmdlgDMbGT/sBZTY5VqdtEzs1BZsZ3J6HTUhG","X-Gm-Gg":"AeBDievshHnBh1MD6CV5ul7bC25Fgqk8nqcrS7u2wFYNw3NPnLJ8bJjEMqr0+r2ZVZ+\n elsYvOxfjWpTlDJ4FBvl4aAWxNPCHWOpfWcL++q+3liUG0RmQQNWqI9LVpqBF+V5t0FnL0wsmBQ\n P0tWmRPW4C1Oycn+EYXRH++Pj5btPokS1MgXQXa/Fvk7114aTPNqOt/69gHZFEDh/h89Mjzauqv\n zPnh9MmRyaFW9FxyEhO3vHrpvfD7Ocdjrd0/ZYo1lKZ7JN1peFAADOEQK4sQ0hRUoaxEDQkDfxb\n OJxqOlUGN4FZmbpPh/e4oosKQOCIuUdNIzA+WtJjY+VtRMa8dAik8bBcyDSUBviTBRx5BbP2cTe\n EKpAFp90Wz2MWN80YkG5Q5gbqTJlP2RNRp40ucgnfc6pvkHj0O5raXqUFwkub+JsdkT7XcM7P7t\n NqJi5KpbZIhuGisss79Q+zh5ijkB+8mUbawQZisg3Nnc55gc6J5ayhCRs6KXIWCgwmWiIBqk+qL\n vaX6XH9","X-Received":"by 2002:a05:6870:f220:b0:3e8:970e:d4f7 with SMTP id\n 586e51a60fabf-4230fd199d5mr4346894fac.11.1775341828937;\n Sat, 04 Apr 2026 15:30:28 -0700 (PDT)","Message-ID":"<ff801c38-75fc-4876-8733-291a3cee33d2@gmail.com>","Date":"Sat, 4 Apr 2026 18:30:26 -0400","MIME-Version":"1.0","User-Agent":"Betterbird (Linux)","Content-Language":"en-US","To":"gcc-patches@gcc.gnu.org","Cc":"Jason Merrill <jason@redhat.com>","From":"Eczbek <eczbek.void@gmail.com>","Subject":"[PATCH] c++: Fix unary negation of nullptr [PR123087]","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"From 2ace27c73fd513bc63f16d28bc7c13dfd33be552 Mon Sep 17 00:00:00 2001\nFrom: Eczbek <eczbek.void@gmail.com>\nDate: Sat, 21 Mar 2026 04:23:13 -0400\nSubject: [PATCH] c++: Fix unary negation of nullptr [PR123087]\n\n     [expr.unary.op] paragraph 9 says that the operand is\n     contextually converted to bool, so this should be legal.\n\n     PR c++/123087\n\ngcc/cp/ChangeLog:\n\n     * typeck.cc (cp_build_unary_op): For TRUTH_NOT_EXPR, replace\n     call to perform_implicit_conversion with call to\n     contextual_conv_bool.\n\ngcc/testsuite/ChangeLog:\n\n     * g++.dg/DRs/dr1423.C: Additonal test.\n---\n  gcc/cp/typeck.cc                  | 3 +--\n  gcc/testsuite/g++.dg/DRs/dr1423.C | 1 +\n  2 files changed, 2 insertions(+), 2 deletions(-)","diff":"diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc\nindex 79eb3b5ba28..e019d6e22a9 100644\n--- a/gcc/cp/typeck.cc\n+++ b/gcc/cp/typeck.cc\n@@ -7854,8 +7854,7 @@ cp_build_unary_op (enum tree_code code, tree xarg, bool noconvert,\n        if (gnu_vector_type_p (TREE_TYPE (arg)))\n      return cp_build_binary_op (input_location, EQ_EXPR, arg,\n                     build_zero_cst (TREE_TYPE (arg)), complain);\n-      arg = perform_implicit_conversion (boolean_type_node, arg,\n-                     complain);\n+      arg = contextual_conv_bool (arg, complain);\n        if (arg != error_mark_node)\n      {\n        if (processing_template_decl)\ndiff --git a/gcc/testsuite/g++.dg/DRs/dr1423.C b/gcc/testsuite/g++.dg/DRs/dr1423.C\nindex d82baae9985..75bc5e0bc99 100644\n--- a/gcc/testsuite/g++.dg/DRs/dr1423.C\n+++ b/gcc/testsuite/g++.dg/DRs/dr1423.C\n@@ -5,3 +5,4 @@ bool b = nullptr; // { dg-error \"converting to .bool. from .std::nullptr_t. requ\n  bool b2(nullptr);\n  bool b3{nullptr};\n  bool b4 = { nullptr }; // { dg-error \"converting to .bool. from .std::nullptr_t. requires direct-initialization\" }\n+bool b5 = !nullptr;\n","prefixes":[]}