From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1888) id 8736E3858D3C; Mon, 24 Jan 2022 16:48:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8736E3858D3C MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Patrick Palka To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-6847] c++: Fix non-portable default argument of make_auto_1 [PR104197] X-Act-Checkin: gcc X-Git-Author: Patrick Palka X-Git-Refname: refs/heads/master X-Git-Oldrev: 2a908f3da07c9e94b8a19e966b45daf0140107e8 X-Git-Newrev: b1aa2a3cf1ba233ccd5a49fde85a2ca7e5f620e9 Message-Id: <20220124164818.8736E3858D3C@sourceware.org> Date: Mon, 24 Jan 2022 16:48:18 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jan 2022 16:48:18 -0000 https://gcc.gnu.org/g:b1aa2a3cf1ba233ccd5a49fde85a2ca7e5f620e9 commit r12-6847-gb1aa2a3cf1ba233ccd5a49fde85a2ca7e5f620e9 Author: Patrick Palka Date: Mon Jan 24 11:47:13 2022 -0500 c++: Fix non-portable default argument of make_auto_1 [PR104197] Avoid using the macro current_template_depth, which expands to an expression that uses __FUNCTION__, within the signature of a function. PR c++/104197 gcc/cp/ChangeLog: * pt.cc (make_auto_1): Use -1 as a placeholder default argument for level. Diff: --- gcc/cp/pt.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc index bba62a5800a..8f50b9c4d3c 100644 --- a/gcc/cp/pt.cc +++ b/gcc/cp/pt.cc @@ -28477,9 +28477,10 @@ make_args_non_dependent (vec *args) by default. If set_canonical is true, we set TYPE_CANONICAL on it. */ static tree -make_auto_1 (tree name, bool set_canonical, - int level = current_template_depth + 1) +make_auto_1 (tree name, bool set_canonical, int level = -1) { + if (level == -1) + level = current_template_depth + 1; tree au = cxx_make_type (TEMPLATE_TYPE_PARM); TYPE_NAME (au) = build_decl (input_location, TYPE_DECL, name, au); TYPE_STUB_DECL (au) = TYPE_NAME (au);