purify 4.1 and egcs still appear to be incompatible.

Laurent Bonnaud bonnaud@irisa.fr
Mon Feb 16 10:16:00 GMT 1998


>>>>> "Brad" == Brad M Garcia <bgarcia@fore.com> writes:
Brad> 
Brad> The difference appears to be the '-O2' option.  If you compile my 
Brad> test program with _no_ optimization, you get the Uninitialized Memory
Brad> Read errors.  Compiling with '-O' also gets rid of the problem.
Brad> 
Brad> Laurent, can you confirm this behavior?

Yes : without optimizations i get errors, too :

      Purify instrumented ./e (pid 21292 at Mon Feb 16 18:43:37 1998)
      UMR: Uninitialized memory read
      This is occurring while in:
            __uninitialized_copy_aux__H2ZPiZPi_X01T0X11G11__true_type_X11 [stl_uninitialized.h:42]
            __uninitialized_copy__H3ZPiZPiZi_X01T0X11PX21_X11 [stl_uninitialized.h:66]
            uninitialized_copy__H2ZPiZPi_X01T0X11_X11 [stl_uninitialized.h:73]
            insert_aux__t6vector2ZiZt24__default_alloc_template2b0i0PiRCi [stl_vector.h:337]
            push_back__t6vector2ZiZt24__default_alloc_template2b0i0RCi [stl_vector.h:150]
            main           [e.cpp:6]
      Reading 1 byte from 0xeffff17f on the stack.
      Address 0xeffff17f is 17 bytes below frame pointer in function __uninitialized_copy__H3ZPiZPiZi_X01T0X11PX21_X11.
      UMR: Uninitialized memory read (4 times)
      This is occurring while in:
            __copy_t__H1Zi_PCX01T0PX01G11__true_type_PX01 [stl_algobase.h:146]
            __copy_dispatch<int*,int*>::operator ()(int*,int*,int*) [stl_algobase.h:161]
            copy__H2ZPiZPi_X01T0X11_X11 [stl_algobase.h:180]
            __uninitialized_copy_aux__H2ZPiZPi_X01T0X11G11__true_type_X11 [stl_uninitialized.h:43]
            __uninitialized_copy__H3ZPiZPiZi_X01T0X11PX21_X11 [stl_uninitialized.h:66]
            uninitialized_copy__H2ZPiZPi_X01T0X11_X11 [stl_uninitialized.h:73]
      Reading 1 byte from 0xeffff01f on the stack.
      Address 0xeffff01f is 17 bytes below frame pointer in function __copy_dispatch<int*,int*>::operator ()(int*,int*,int*).
      UMR: Uninitialized memory read
      UMR: Uninitialized memory read
      UMR: Uninitialized memory read
      UMR: Uninitialized memory read
      UMR: Uninitialized memory read
      UMR: Uninitialized memory read
      Current file descriptors in use: 5
      Memory leaked: 0 bytes (0%); potentially leaked: 0 bytes (0%)
      Program exited with status code 0.

It is not a big problem for me, as i can still debug a program with
-O2.  

For me the problem seems to be in SGI's STDLIB, not in Purify.  So i
would report the problem to SGI.

-- 
Laurent.



More information about the Gcc-bugs mailing list