(I think you are looking for gcc-h...@gcc.gnu.org, or gcc's bugzilla,
rather than this mailing list)
On Fri, 5 May 2017, Helmut Zeisel wrote:
The following program gives a warning under GCC 7.1 (built on cygwin, 64 bit)
#include <vector>
int main()
{
std::vector<int> c {1,2,3,0};
while(c.size() > 0 && c.back() == 0)
{
auto sz = c.size() -1;
c.resize(sz);
}
return 0;
}
$ c++7.1 -O3 tt.cxx
Please use
$ LC_ALL=C c++7.1 -O3 tt.cxx
when you want to post the result, unless you are sending to a German
forum.
In Funktion »int main()«:
cc1plus: Warnung: »void* __builtin_memset(void*, int, long unsigned int)«:
angegebene Größe 18446744073709551612 überschreitet maximale Objektgröße
9223372036854775807 [-Wstringop-overflow=]
Compiling with GCC 6.1 (c++6.1 -O3 tt.cxx) works fine.
Is this a problem of my program or a problem of GCC 7.1?
Sounds like a problem with gcc, maybe optimization creates a path that
corresponds to size==0 and fails to notice that it cannot be taken.
--
Marc Glisse