[ https://issues.apache.org/jira/browse/STDCXX-313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor closed STDCXX-313. ------------------------------- Resolution: Fixed The regression test passes with (at least) gcc, Intel C++, VisualStudio, and Sun C++. Closing as Fixed. > std::valarray::apply() uses uninitialized storage > ------------------------------------------------- > > Key: STDCXX-313 > URL: https://issues.apache.org/jira/browse/STDCXX-313 > Project: C++ Standard Library > Issue Type: Bug > Components: 26. Numerics > Affects Versions: 4.1.2, 4.1.3 > Environment: all > Reporter: Martin Sebor > Assignee: Martin Sebor > Fix For: 4.2 > > > The program below is designed to detect memory corruption (such as the use of > uninitialized storage) in valarray. When compiled > with the latest trunk it aborts at runtime. > $ cat t.cpp && make t && ./t > #include <cassert> > #include <valarray> > struct S { > const S* const self; > S (): self (this) { } > S (const S &s): self (this) { assert (&s == s.self); } > ~S () { assert (this == self); } > S& operator= (const S &s) { > assert (this == self && &s == s.self); > return *this; > } > }; > S foo (S s) { return s; } > S bar (const S &s) { return s; } > int main () > { > const std::valarray<S> a (1); > a.apply (foo); > a.apply (bar); > } > gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG > -D_RWSTD_USE_CONFIG -I/build/sebor/dev/stdlib/include > -I/build/sebor/gcc-4.1.0-11s/include > -I/build/sebor/dev/stdlib/examples/include -pedantic -nostdinc++ -g -W > -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long t.cpp > gcc t.o -o t -L/build/sebor/gcc-4.1.0-11s/lib -lstd11s -lsupc++ -lm > Assertion failed: this == self && &s == s.self, file t.cpp, line 10 > Abort (core dumped) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.