From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vs1-xe30.google.com (mail-vs1-xe30.google.com [IPv6:2607:f8b0:4864:20::e30]) by sourceware.org (Postfix) with ESMTPS id 8D58E3858C54; Mon, 27 Mar 2023 21:24:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8D58E3858C54 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-vs1-xe30.google.com with SMTP id z17so2110345vsf.4; Mon, 27 Mar 2023 14:24:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679952242; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Az/LeSzTnRXXwuxKfcCkSC/La0HOdZHk+TXpAw4/0Y8=; b=pKnd2bWSB+PSj11EKi4McGL9uxGMOIZ3jgp1wILCrQJAbWBYlXt8IB6X8QoNmX80Qk P/Jd0Yn+8XCzaCrp5kCnKssQwyUhFx3NkZbvi4zTkN+Iwfc537jU3c7dDqGyLNhrgmt4 c/h3m5r9SL1BnXjbqqlrgYJ5goDjiKLOB2jrp2nZUtj9jQyp8EaqOev+x43mZO3Bidh6 tC6ptmglfZyZudodLdapm2Cbv4kJnj2fGM0+x6eZgBr/dygP7rLVCMBKMMYjMoACynJs rwrZW55dRX97vY0BxJri9u/NWfkb8oNCWk/8uWi1QLtEwk/+XHDBKl0jzyuXz7etnzkp AbzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679952242; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Az/LeSzTnRXXwuxKfcCkSC/La0HOdZHk+TXpAw4/0Y8=; b=WiUkdLn+WH1DIpK87MgSkU2SylXp3S6PmRl0AFdqmjb6WVFiK3sKChYHMVA5OIcFk6 dyo+3hLUq19izoNpKpu4NYYY3J++oYkXhewbnfvAT+Dbn7PqotQkIkGfRgCYMjMr6SSb /TpBQYwLOJJyEG8N0QgBqxLtwa/7ngvE3vilv3Y/O3SSzFYcM5W4m7afggsNcG+FFOE0 wNYgiZhqp1zFt1HZwjp6sGK3NaPmMC1rDNUm9ahS96rxvum5kNj9jKW/zqWuJaNUhASZ zTESLkGplmZUl/Z328J6w6Sz+9Zz0hmipgLPWbBVLIvSsCZsdn5MhIROtZURdKQ95irW eFXQ== X-Gm-Message-State: AAQBX9dQ5JMum93wRWU/9eYe4Wnwge0kx3T/6VEurBNh6YpYxCv8I4Vl jAaSa19/axgodoWE/fW+SmDrsWZkvS46UQVRIa+QfK+xG3E= X-Google-Smtp-Source: AKy350aNq11KM5jj7u3fp5M7bAYBMH+jy7yL9T3/jitOCZyJoLjIcWf2HnEYzlyocl2hE57fDb1a9zMMwCSgwT6Fafo= X-Received: by 2002:a67:d709:0:b0:422:194a:8566 with SMTP id p9-20020a67d709000000b00422194a8566mr7007790vsj.5.1679952242410; Mon, 27 Mar 2023 14:24:02 -0700 (PDT) MIME-Version: 1.0 From: Weslley da Silva Pereira Date: Mon, 27 Mar 2023 15:23:51 -0600 Message-ID: Subject: [PATCH] libstdc++/complex: Remove implicit type casts in complex To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="000000000000a6cd4305f7e85cb4" X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000a6cd4305f7e85cb4 Content-Type: multipart/alternative; boundary="000000000000a6cd4105f7e85cb2" --000000000000a6cd4105f7e85cb2 Content-Type: text/plain; charset="UTF-8" Dear all, Here follows a patch that removes implicit type casts in std::complex. *Description:* The current implementation of `complex<_Tp>` assumes that `int, double, long double` are explicitly convertible to `_Tp`. Moreover, it also assumes that: 1. `int` is implicitly convertible to `_Tp`, e.g., when using `complex<_Tp>(1)`. 2. `long double` can be attributed to a `_Tp` variable, e.g., when using `const _Tp __pi_2 = 1.5707963267948966192313216916397514L`. This patch transforms the implicit casts (1) and (2) into explicit type casts. As a result, `std::complex` is now able to support more types. One example is the type `Eigen::Half` from https://eigen.tuxfamily.org/dox-devel/Half_8h_source.html which does not implement implicit type conversions. *ChangeLog:* libstdc++-v3/ChangeLog: * include/std/complex: *Patch:* fix_complex.diff. (Also at https://github.com/gcc-mirror/gcc/pull/84) *OBS:* I didn't find a good reason for adding new tests or test results here since this is really a small upgrade (in my view) to std::complex. Sincerely, Weslley -- Weslley S. Pereira --000000000000a6cd4105f7e85cb2-- --000000000000a6cd4305f7e85cb4 Content-Type: text/x-patch; charset="US-ASCII"; name="fix_complex.diff" Content-Disposition: attachment; filename="fix_complex.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfrc1am00 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9jb21wbGV4 IGIvbGlic3RkYysrLXYzL2luY2x1ZGUvc3RkL2NvbXBsZXgKaW5kZXggMGY1 ZjE0YzNkZGIuLjFhNGFjOGEyYTU0IDEwMDY0NAotLS0gYS9saWJzdGRjKyst djMvaW5jbHVkZS9zdGQvY29tcGxleAorKysgYi9saWJzdGRjKystdjMvaW5j bHVkZS9zdGQvY29tcGxleApAQCAtODAsNyArODAsNyBAQCBfR0xJQkNYWF9C RUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICB0ZW1wbGF0ZTx0eXBlbmFtZSBf VHA+CiAgICAgX0dMSUJDWFgyMF9DT05TVEVYUFIgY29tcGxleDxfVHA+IGNv bmooY29uc3QgY29tcGxleDxfVHA+Jik7CiAgIC8vLyAgUmV0dXJuIGNvbXBs ZXggd2l0aCBtYWduaXR1ZGUgQGEgcmhvIGFuZCBhbmdsZSBAYSB0aGV0YS4K LSAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPiBjb21wbGV4PF9UcD4gcG9sYXIo Y29uc3QgX1RwJiwgY29uc3QgX1RwJiA9IDApOworICB0ZW1wbGF0ZTx0eXBl bmFtZSBfVHA+IGNvbXBsZXg8X1RwPiBwb2xhcihjb25zdCBfVHAmLCBjb25z dCBfVHAmID0gX1RwKDApKTsKIAogICAvLyBUcmFuc2NlbmRlbnRhbHM6CiAg IC8vLyBSZXR1cm4gY29tcGxleCBjb3NpbmUgb2YgQGEgei4KQEAgLTk2MSw3 ICs5NjEsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgog ICAgIGlubGluZSBjb21wbGV4PF9UcD4KICAgICBwb2xhcihjb25zdCBfVHAm IF9fcmhvLCBjb25zdCBfVHAmIF9fdGhldGEpCiAgICAgewotICAgICAgX19n bGliY3h4X2Fzc2VydCggX19yaG8gPj0gMCApOworICAgICAgX19nbGliY3h4 X2Fzc2VydCggX19yaG8gPj0gX1RwKDApICk7CiAgICAgICByZXR1cm4gY29t cGxleDxfVHA+KF9fcmhvICogY29zKF9fdGhldGEpLCBfX3JobyAqIHNpbihf X3RoZXRhKSk7CiAgICAgfQogCkBAIC0xMTYxLDEzICsxMTYxLDEzIEBAIF9H TElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKICAgICAgIGlmIChf X3ggPT0gX1RwKCkpCiAgICAgICAgIHsKLSAgICAgICAgICBfVHAgX190ID0g c3FydChhYnMoX195KSAvIDIpOworICAgICAgICAgIF9UcCBfX3QgPSBzcXJ0 KGFicyhfX3kpIC8gX1RwKDIpKTsKICAgICAgICAgICByZXR1cm4gY29tcGxl eDxfVHA+KF9fdCwgX195IDwgX1RwKCkgPyAtX190IDogX190KTsKICAgICAg ICAgfQogICAgICAgZWxzZQogICAgICAgICB7Ci0gICAgICAgICAgX1RwIF9f dCA9IHNxcnQoMiAqIChzdGQ6OmFicyhfX3opICsgYWJzKF9feCkpKTsKLSAg ICAgICAgICBfVHAgX191ID0gX190IC8gMjsKKyAgICAgICAgICBfVHAgX190 ID0gc3FydChfVHAoMikgKiAoc3RkOjphYnMoX196KSArIGFicyhfX3gpKSk7 CisgICAgICAgICAgX1RwIF9fdSA9IF9fdCAvIF9UcCgyKTsKICAgICAgICAg ICByZXR1cm4gX194ID4gX1RwKCkKICAgICAgICAgICAgID8gY29tcGxleDxf VHA+KF9fdSwgX195IC8gX190KQogICAgICAgICAgICAgOiBjb21wbGV4PF9U cD4oYWJzKF9feSkgLyBfX3QsIF9feSA8IF9UcCgpID8gLV9fdSA6IF9fdSk7 CkBAIC0xMjU3LDcgKzEyNTcsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BB Q0VfVkVSU0lPTgogICAgIGNvbXBsZXg8X1RwPgogICAgIF9fY29tcGxleF9w b3dfdW5zaWduZWQoY29tcGxleDxfVHA+IF9feCwgdW5zaWduZWQgX19uKQog ICAgIHsKLSAgICAgIGNvbXBsZXg8X1RwPiBfX3kgPSBfX24gJSAyID8gX194 IDogY29tcGxleDxfVHA+KDEpOworICAgICAgY29tcGxleDxfVHA+IF9feSA9 IF9fbiAlIDIgPyBfX3ggOiBjb21wbGV4PF9UcD4oX1RwKDEpKTsKIAogICAg ICAgd2hpbGUgKF9fbiA+Pj0gMSkKICAgICAgICAgewpAQCAtMTI4MCw3ICsx MjgwLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAg ICBwb3coY29uc3QgY29tcGxleDxfVHA+JiBfX3osIGludCBfX24pCiAgICAg ewogICAgICAgcmV0dXJuIF9fbiA8IDAKLQk/IGNvbXBsZXg8X1RwPigxKSAv IHN0ZDo6X19jb21wbGV4X3Bvd191bnNpZ25lZChfX3osIC0odW5zaWduZWQp X19uKQorCT8gY29tcGxleDxfVHA+KF9UcCgxKSkgLyBzdGQ6Ol9fY29tcGxl eF9wb3dfdW5zaWduZWQoX196LCAtKHVuc2lnbmVkKV9fbikKICAgICAgICAg OiBzdGQ6Ol9fY29tcGxleF9wb3dfdW5zaWduZWQoX196LCBfX24pOwogICAg IH0KIApAQCAtMjAxNyw3ICsyMDE3LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX1ZFUlNJT04KICAgICBfX2NvbXBsZXhfYWNvcyhjb25zdCBzdGQ6 OmNvbXBsZXg8X1RwPiYgX196KQogICAgIHsKICAgICAgIGNvbnN0IHN0ZDo6 Y29tcGxleDxfVHA+IF9fdCA9IHN0ZDo6YXNpbihfX3opOwotICAgICAgY29u c3QgX1RwIF9fcGlfMiA9IDEuNTcwNzk2MzI2Nzk0ODk2NjE5MjMxMzIxNjkx NjM5NzUxNEw7CisgICAgICBjb25zdCBfVHAgX19waV8yID0gX1RwKDEuNTcw Nzk2MzI2Nzk0ODk2NjE5MjMxMzIxNjkxNjM5NzUxNEwpOwogICAgICAgcmV0 dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fcGlfMiAtIF9fdC5yZWFsKCksIC1f X3QuaW1hZygpKTsKICAgICB9CiAK --000000000000a6cd4305f7e85cb4--