From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic315-14.consmr.mail.bf2.yahoo.com (sonic315-14.consmr.mail.bf2.yahoo.com [74.6.134.124]) by sourceware.org (Postfix) with ESMTPS id 8E5043857838 for ; Fri, 23 Oct 2020 20:01:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8E5043857838 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1603483278; bh=ISnKtVsjAhccPy9rgtweedyUQRuSIiST16LhYpwvgLw=; h=To:From:Subject:Date; b=XEa1sBf+rOdAF31l7M2c38uxv/4d8dfzsfVrVdJGs3zwlcS20L9yPilx+CD1rJup4JssYIKXBneyn7PXLYhMJamZyM0QXYjK9w4b2VgikhxHgCOsky8ktkOl88q0KtpGZElc+ZmBAARMhM2K1UCDwp+53QIJb4vsShkvpmcxutsQLc8wDt7JDbUONPGiniB9g6R/IIF39cUh5WPx+5P8fpAu1x9A45hAGTZGVWT+gnbVMQPAXfjDIb4hKt0v0EtY8WV+AOxOi76uhxrTYB+dZ4uiSep3cxmJOj163dk7XDABeEa98jnbHi+fACRL58YwLlqOW8vADPblrG1kaKH/QA== X-YMail-OSG: mmoRU7wVM1mr1.58Y21ResuNZI8FHWSc0k0wxaja71CW7kBdexOESlUA_zqB5Ss 6Hy8iNdTO8iINg7FJQRCElOi9UfTsiMtAlvwo1im0_5vU9F6KGqndEs.EcTbesnVvDV80NKteVJ4 Fm0YRGKs9pAreceVlzr2NPbZqJqBvnKBiS5b_zR0h5.niCpnkErAaT_CsEK5._eumJvsuzWdWV7V kufLxj44tvGOkdwyfI3DXJDGgOfH2O.ipc6iE4XkdHNuFEplhKQPH.mZkoh3iFDrlaq7YPb48NfZ IGnOkcFNlKXtT0QiRza3LNoXH.dRiU8GE.hV9_aUwnyR.Dm6hXei9UqoWu6ALqYaGw_ofHZLqnoY mzltrl7K4q9DKoUXl0WqE6khTj9.NvNgmU6dUUkpw1rXgr87m3.Sp8Yp6q3VWEnDJ63euMOcj38q 7ETvwQ8k9lbK5AJRPrR_ku6DoAJMKIZlq9D_ZDpdwfIR5uj3wqQNOaxynWHiYvtc8Jo_obBBCquO V1.M33FuW5mItVHFLBSGME2h1hHGAS6aPIVlgZboi3cwI99Mw90c8djwHXGT2N2g4JK6AG8sBwIX NF8Z.V.RCW9bDAAsi.spspzUX_BFkc5j2zTarp9XIXW_p4wJ7F.fUpAwhogjh1P5fz33Ch5O3R5e vdRG283eynAo1jD9RwEqRwc4P_uI6Mq..dlLOwHjKRZ3TCCt4xkVwIR9eGnY.PyHefegMp3gRz6q 39eTVw_MVjZzP8FwoXfEftGrX87EtxntM86Mv7ZYNu6oYIfIVN6xclCCkQ.Ac49.hjtPyBJ475Xh rMMgA04h3y.y2_tsMg6b74LDImfqTF3mCI6xu1SIM0QtngDB.jnHfAO2R7XLowr4JGEIwvo8iWXP EUiIm0Ayq3U6O65wcN.Myti4ccGbJ.l7gepnjjaWY8m46eI28Qgsvgxo7bFkNMsFdyyZ.aAPCOZD xTl9RFmeAm3z1Twat7vEAqSBBuHgacK0Kexn_mKR5tHfJbBKY2t2OF.ixbKT47HeTN7FqvZ_Mjv2 NHT30Q_VW8M1BkJY5yeoUlVznnDnrGqiIR5M_4d.8ma5kc7Lg2nMG.TKL2FZZWO3Q2REfiCw1MYm grkcMKJBVEG6Lo0Hd1rR.qthIUwdm.UwWmNWEyqMXBGEQSxisnSLD20.VHaxA9UYeMPwm3_LmNK4 QCP3Ed0E7CGWe6ZLwTbZ3Y9wvl.ODLVbk.zQSNTO_KrclF3fv8p651wAbZhxk4x1Q.f4GtDjI.BG z.1U3gO12aFi7N4KLZ.BaodYZqSaUhAb_bBsnsAfz6IwmGF3TQoA8Z.XDV46svLO8RfiVrKW2.dx f5rzU13dOpAb5scLqQGtLmKB6fxkR3_smzvbeMq8kTpPLHhzpiSffXMtc.hAWsKAlowoFUw72eq1 b9mPX_SIHNAxREZkaaO6yaBuaSuGZj.H4VaM0TpRzlDDdzea4n9PsAZuvJ0eKKArh9jdi12h9_Ac V09mhA.iOoDhB1DbcskKWFiThNXSMgGX7ERcE0h553uRHOhsxkN4VQD5gRjRDSdmrEvITEMxOJSL onwSl8KrU6uwqLaGAUo3WtyVPxfffh.N59Sp5EvxAOVdVghc.WdRgH4CO4841cM6piNSMrZTORvL y38u_e_ywpLDuExU_wCCLJl1kWx_4oqXj9tiKdkiH8r1bXYKWMWOT4URzcH4o76mHlmS9zcqPTa. MJg1uQjnLig.R95BVq3w8O3NVKeU8zJF.Z9VFQzY0jYIwCoABIBn6Px5ZkPfnUw2S5H.uj1hd1bT XWWYat.2BiMjndmf9TivZVrEbQt8RVffwDzqK3EF9UhwF0Lw3ZETpmjYHqlhXHYBFX3zvdzMuLz4 Sieb6U60N3Jo7Cmc15KI7V6xDTOkH5LPksiSTrWhqOCWRlJYHuPpm8yuJ9px9NHx.zrLFu4weGgH _6ZYvfOuQqjCD8EDaSp1lbwDmVOJ2gMsOVxDFc4fjIwiZm4pFzInX_tvjYTB2U.Q1iM3QnW7J2bB tFUNg1LP8sC8HEZ50wZwTjnIGuzXesPGZkxrQBG1RuwrOAi._QdNEu57DmPF64MtPIf6u.sC3Dqu oPxZKGuGuZ87TiZ7e98.eXoojnptulmG7Y4A368G01Nf1hfibQbwODDcE.1Qa6N5RE9q.FOPA9OZ tVetz64mqhCQMJLJT7hkmpM.H7_IHOMMbFBQoeHSazajg4jt1_.5Jpe_MHISGsm7WB.N_Aup5AQm CfbtxSKmuJ_U1KD12K5W3STieY.U_HaM.izMu3Z_maJYJ3Ec8kEvhGxQtQWeUgvdNPBOoda1d.Wc NAbK1RT3s9xVSqDDWanh5crNY0VB2qzqzoi40xnTFcgUW3iuHfWJdabCNiFxa9723l1X9eWvgVax QPK03HNO3QODBCOnRFZOMtSlEyN7QHb.kHAdDDS2jgzSCWlyUxrzuCWQbGUNUwm.rAEM3GYjWjRr 8Abg0jGWg5pI7DRHcQl9d_pxCmt8Dx35AkSpixNcgy5UdkPRoJiV89jN_QdrBrPDhzfIlck7Ne.I rrM2i35wq25JWlYKQqCiWsIkUzd0mHAVvWLURY6Btoznp.BluOI.2WWs1t_6SEpycOcX9iS73fvG oQoog7L8EwKecstB0Fg-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic315.consmr.mail.bf2.yahoo.com with HTTP; Fri, 23 Oct 2020 20:01:18 +0000 Received: by smtp411.mail.ne1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 16bbdd0cdeff0ce923123986e8c2248f; Fri, 23 Oct 2020 20:01:14 +0000 (UTC) To: gcc-help From: mark_at_yahoo Subject: __attribute__ to selectively disable -Wmaybe-uninitialized Message-ID: Date: Fri, 23 Oct 2020 13:01:13 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit References: X-Mailer: WebService/1.1.16868 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Apache-HttpAsyncClient/4.1.4 (Java/11.0.7) X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Oct 2020 20:01:19 -0000 To disable warnings of the form: file.cxx:307:23: warning: 'buffer' may be used uninitialized in this function [-Wmaybe-uninitialized] I have to bracket the variable's declaration, its use later in the function, and sometimes both, with: #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" // code here #pragma GCC diagnostic pop The necessity to add many of these pragmas makes the code difficult to read. Is there a variable attribute that could be used instead, something like: char *buffer __attribute__((uninitialized)); I can't find anything similar in the "Common Variable Attributes" section of the docs. If there isn't, could one be added? If local variables have attributes that are maintained throughout the compiler phases it seems it would be simple to check for one immediately before printing the warning, no matter how deep in the compilation process. Notes: 1. I understand that -Wmaybe-uninitialized produces both false positives and false negatives. 2. Due to #1 it's difficult to produce a simple test demonstration. 3. I don't want to disable -Wmaybe-uninitialized globally, or for an entire function. Warnings are "A Good Thing"(tm). 4. Please, no lectures on why local variables should always be initialized at declaration. 5. I now see something similar was requested in 2012 in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55288 but seems to have been dismissed with a variation of #4. Thanks for any info. -- MARK markrubn@yahoo.com