incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Closed: (STDCXX-314) std::valarray unary operators use uninitialized storage
Date Sun, 14 Oct 2007 23:25:50 GMT

     [ https://issues.apache.org/jira/browse/STDCXX-314?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Martin Sebor closed STDCXX-314.
-------------------------------

    Resolution: Cannot Reproduce

Cannot reproduce. I suspect I might have made some bad local changes when I ran into it. My
bad.

> std::valarray unary operators use uninitialized storage
> -------------------------------------------------------
>
>                 Key: STDCXX-314
>                 URL: https://issues.apache.org/jira/browse/STDCXX-314
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 26. Numerics
>         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 { assert (this == self); return *this; }
>     S operator- () const { assert (this == self); return *this; }
>     S operator~ () const { assert (this == self); return *this; }
>     bool operator! () const { assert (this == self); return false; }
>     void operator= (const S &s) { assert (this == self && &s == s.self);
}
> };
> int main ()
> {
>     const std::valarray<S> a (2);
>     +a;
>     -a;
>     ~a;
>     !a;
> }
> 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 15
> Abort (core dumped)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message