I'm getting the following error on struct members which should absolutely be 
initialized:
  Conditional jump or move depends on uninitialised value(s)

To begin investigating I did a memset of zero on the entire struct and the 
error goes away.  Now this C++ struct inherits another one and the error is 
reported in C code expecting the base struct.  If I only memset the base 
struct the error is still reported, which should be impossible.

Code summary of the weirdness:

    struct ListDrawState : public DrawState { ... };
    extern "C" void draw_func(DrawState*);

    ListDrawState ds;
    memset(&ds, 0, sizeof(DrawState));  // Error in draw_func()
    //memset(&ds, 0, sizeof(ListDrawState));  // No error in draw_func()
    draw_func(&ds);
 
Here's what I'm using to compile and test:
    gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
    valgrind-3.21.0

I've tried to re-create the problem in a stand-alone test, but the error 
doesn't happen there.  If someone wants to look at the actual code I can 
provide a GitHub URL.

-Karl





_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to