From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by sourceware.org (Postfix) with ESMTPS id 1E2FC3858439 for ; Wed, 20 Dec 2023 19:16:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1E2FC3858439 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=bookmanager.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=bookmanager.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1E2FC3858439 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::62d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703099812; cv=none; b=uRA0K1c2pHCypz71PP4av0vQAB5rel6Z2VC8ItZsCDHGgrvzPdYYqARIdh6fftdk0trqvF583LpJqO33TAvLw+uftwrulaCPoSUc3PXs2jFlcPmq5fj6HSJkZBNm6Me76fC9W87C+xEFrH93aVZXhSguR15w4XZzoWw/Z93p2s8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703099812; c=relaxed/simple; bh=DqvGPqQTL7OOzXKr1muGjntRNqeYSHkpOn5Sv4cHdW8=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=jLvRvJdpGPXLOBAZuai/EG1701wsYfoJKFnnhsoQQRwragN7IBXf8bYhVp0PFwTk4TVv4osOuEqE8K9Snfg0UcCP9B6iRYYcOv0qhBG4AJGAXVyXH6jk1PenrQARCHYQOn2L28za4jGJlSr4A03gJZ/KpE8WfAjhf820SY9qYuw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1d3ce28ac3cso443285ad.0 for ; Wed, 20 Dec 2023 11:16:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bookmanager.com; s=google; t=1703099809; x=1703704609; darn=gcc.gnu.org; h=content-transfer-encoding:subject:from:to:content-language :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=By28GVFtVdjKb5Yhp9mER4tMaPdPOqW8CsrdSs7MTOQ=; b=e1hte7HL2bxJXaGWmI99AtdO0EyxcWm0gtjVmF/DRCK3HFBoO6VLd/0rxDmJZgD5bT +vdOUMyieqBS1mFGbD1fGpB9toWn0pWVmJHAMEuSY9xuzZ4AQBRKdc/BMVh8D2Bn6fUD pIBIXBMSpgm7q96elxkiASUpREY1J7G/Es4VA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703099809; x=1703704609; h=content-transfer-encoding:subject:from:to:content-language :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=By28GVFtVdjKb5Yhp9mER4tMaPdPOqW8CsrdSs7MTOQ=; b=pEFDh0Lh0jhGEjOvIbzheO+EngsRg676EtHsz71KXxWxBcvfv8nkvreCL0Lnl/ChYO wbd+CMu5r8KF3IE93IFVURFxoJLXO7N/4sLByWvhbw/QmxQ0rsFUVVykJMnt2dSlcAfH ml9gHcipRMYTTlTyK5ZO9YTMwTiHjiqspu80UbTurOryb3PNlWNyXpjb3Lwn7uJtKoh8 21Ogddk1EpZjRyNTz9n4LnEefiNcGdiR6/3n6ryiPwcB1zT1WL3VcEpSvrgERWSqI13B OvKa32ttV/5VskIoa9UScjR7S5zzYg5SA6obQJ36Y8KQQ263OOsyClHeNYK81jx6jjpl zVNQ== X-Gm-Message-State: AOJu0YxUgAvWSGTXmvffhuF/DsxDo6LMghpQnqzFXfHZe02Sg23Os9yC JZszzq/SZBh7r/oya0fioy4sTPMU/oAH+Sl/EjY= X-Google-Smtp-Source: AGHT+IG2z4m6Q8vAMtPQX0ZF0l5i/0dOiRhOQZnEhRUMS/uwYswQzMO7h8EvjzsdnaeV0/dFgvrmSQ== X-Received: by 2002:a17:902:b597:b0:1d3:f285:54c0 with SMTP id a23-20020a170902b59700b001d3f28554c0mr815292pls.24.1703099808650; Wed, 20 Dec 2023 11:16:48 -0800 (PST) Received: from [192.168.0.165] ([184.71.101.42]) by smtp.gmail.com with ESMTPSA id g8-20020a170902740800b001d0c641d220sm68718pll.257.2023.12.20.11.16.48 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 20 Dec 2023 11:16:48 -0800 (PST) Message-ID: <31bdc2a5-3556-4ccb-8a91-723ccd71652c@bookmanager.com> Date: Wed, 20 Dec 2023 11:16:47 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-CA To: gcc@gcc.gnu.org From: Eric Batchelor Subject: Expected warning maybe-uninitialized does not appear using g++13.2.0? Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: Hello, I unintentionally stumbled upon some strange behaviour that occurred due to a typo. I reproduced the behaviour where an object (std::string in my case) can be passed to a function by reference, uninitialized, WITHOUT a compiler warning. Changing the code to pass the object by value DOES emit the warning. I don't think the compiled code is incorrect, it segfaults presumably due to uninitialized members. I understand there may seldom be a reason to use uninitialized objects, so "don't do that," but as I said this was unintentional and it seems that it should have generated a warning, which have saved some head-scratching. Code to reproduce: #include std::string f(std::string &s) {   s.append("x");   return s; } int main() {   std::string a = f(a); } Compile and run (no warning): $ g++ -o uninit_obj uninit_obj.cpp -std=c++23 -Wall -Wpedantic -Wextra && ./uninit_obj Segmentation fault (core dumped) No difference whether using -O0 (or 1 2 3) If I change the function to pass by value, std::string f(std::string s), and rerun, I get the expected compiler warning: $ g++ -o uninit_obj uninit_obj.cpp -std=c++23 -Wall -Wpedantic -Wextra && ./uninit_obj uninit_obj.cpp: In function 'int main()': uninit_obj.cpp:7:22: warning: 'a' may be used uninitialized [-Wmaybe-uninitialized]     7 |   std::string a = f(a); [...] terminate called after throwing an instance of 'std::bad_alloc'   what():  std::bad_alloc Aborted (core dumped) Output from g++ -v: Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/local/gcc13/libexec/gcc/x86_64-pc-linux-gnu/13.2.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-13.2.0/configure --disable-multilib --enable-languages=c,c++ --prefix=/usr/local/gcc13 --program-suffix=-13 --enable-libstdcxx-backtrace=yes Thread model: posix Supported LTO compression algorithms: zlib gcc version 13.2.0 (GCC) Thanks