From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by sourceware.org (Postfix) with ESMTPS id 1114D3938C1E for ; Fri, 1 May 2020 21:57:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1114D3938C1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=andre.maute@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1588370223; bh=vn1RqWf9ymepKGO1k2NZmUBMAFooLx3CQ5Iy3YRJkiQ=; h=X-UI-Sender-Class:From:Subject:To:Date; b=d5ofrnLocI1FV868w279I3RxoNBHBMVtqQi8jBO5233OZniJZIQ59Pt+/QgW6qRAE LsQuZrjY/EmsqL4+k6/W6BB41YYu5/5XbwgFylb/DV2zUQWRF7KUXUy2i9nw6+Io/9 8w+RcrBTbxAKQIOGUg2pItWV4U3bCKRrn15c579M= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from linux.fritz.box ([79.228.171.28]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Ma24y-1jgpPX0jqe-00VwrE for ; Fri, 01 May 2020 23:57:03 +0200 From: andre maute Subject: -fanalyzer triggers on empty vector of strings and foreach loop To: gcc-help@gcc.gnu.org Message-ID: <85dcd761-ff53-3c38-06c5-538af59bc744@gmx.de> Date: Fri, 1 May 2020 23:57:02 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:ThOPe5elwnd92r2N9WvuoaHpHgXSck7GgyWzo/JRQRyF6otWQ64 txNEFKr6Kl7NC5/XdeZLwjtTyXdCmusRUvmQcrqKqagQH8kIfcs21oshuqQtJIZfz2+cD/q zZupXPDFFSnyleGHF/Ug5Q+4rXKAC+cmvt+ON3EjCeZrhTyF7pxl1lVUhyE6MUHyQM0V4yf B3eL8q9ZVUy2ZqF13Oerg== X-UI-Out-Filterresults: notjunk:1;V03:K0:cNXJCGfGAcM=:dtkqtOZfxVCpLcU+G6R2na HG0nb438PSORy8f42PF/7Mi/BxsMuF14zW1/M71py2O2RpE84nSZmYmNQhW/NJfyPWuf4Zoj1 +FhOtkqVw74YpuyKW2nT6fqKiOlHoGNEscTO48Sn62xIUE5VmNtVR9Tnn/ox/6wwBgvL91kOQ 1xsj0p9ozw9TiqASbXVEhJGjFGOwzV1u+5byYJSHNMkactq2+6XDQA3mRQOCQ4r4tTQM1soQF vo9q5OlRqqr2KJm5B1yXEoRNHkyU8wTbyHPInbz6lGMwfqLlR4RpzGP5gUlSjKJoII3X5559/ 0G67MGzeMQ2WEXyljGMaSKQXUXi+w4J2HFdXN3/8YMD4JgYTsfvzq+/4nVi5xi3I/+4VcRqap CPnp+J9fB27d60nfujNfTjQoX+n+obrkkDtxFStRpf9RfCfDEklaN8S2Olqg01i3oQGYr+fAl hHOZXhYsfendhmFztWDL+78L7PCjks94u6RDGK6tfyTsvzZI+gnEEyFv3sZSqxbhBnU5Scfms zm+Csvp6iESNtDqFIxaL0WyNUBIVHfXJPsLKPBTO1FWo0LbBZh6kap2xbDaHThoajaFy1MFQ3 MoilWQBSSj94WXq5XfSrLM1iw37PM63l5X8xiJ278QSzBocaJ5RaiiemKVIOsnbsTo5uGVTA4 z6vlRIcOhVHcz6rCZCWvceYq4qwe+zBX3jUMV1UgOcSkMrsW8NrK67la8N8VcIEaQY1J1p5Ip TVJqljrcgx4+U1jpl5hFNUZvYYuASdxSoqsYKxODgDvmc3eUxDGsg0HVhIFGi0O8gRQGi99Od G4x//pa/eC7yE23Dyf5oHAcWvmp+GrLEymDRex23SpGX0O3N2mTQSTKoZ+ineAny+Qtprx+YR 9FEYGJHsoFqkL4IOQg7FDHNFN9eMqy76VCaN+Zv6vggq6voCKtB+kzVw5VR0vs4Co3yR4LXEb cmxBH82W8qoHtSuHtkZEIwqGcyH3510an/iP8klmpS6E+kDJBinX2IS8DyToMWLXQEB+TRrXN 1HbRkC0omKSowsbusTpC2L/DrYjrk+8iQzI1ckQmUQmCSZwPfYrOWicJ7s9poPPp3neZKcN07 9V/yzrIT/l928ri/l2AZn9X3RmI89FqQvNNWjP8GyeDkCybiRtLrD0m6ochFJWo7XsEGiCPgn Lr9KJ93/x3wN5BLQHtnX1rvyqyEEUWd16K552gii+qIN/e0pDmT5AAX9LPvW+ZvSdReXZxGzI l6XF+2QfLaGJcltg8 X-Spam-Status: No, score=-3.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, 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, 01 May 2020 21:57:06 -0000 I wonder if this is expected behavior this is on a recent fedora 32 x86_64 system g++ (GCC) 10.0.1 20200328 (Red Hat 10.0.1-0.11) Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. To trigger a lengthy list of deductions, I use the following three files and g++ -fanalyzer main.cpp line.cpp Using only the given warning flag triggers nothing g++ -Wanalyzer-null-dereference main.cpp line.cpp ///// begin of main.cpp /////////// #include #include #include "line.h" int main() { std::vector m_Text; std::vector m_Lines; for( const auto& line : m_Text ) { m_Lines.emplace_back(line); } return 0; } ///// end of main.cpp ///////////// ///// begin of line.h /////////// #ifndef LINE_H #define LINE_H #include class Line { public: explicit Line( const std::string& data ); const std::string& data() const; private: std::string m_Data; }; #endif /* LINE_H */ ///// end of line.h ///////////// ///// begin of line.cpp /////////// #include "line.h" Line::Line( const std::string& data ) : m_Data(data) {} const std::string& Line::data() const { return m_Data; } ///// end of line.cpp /////////////