/*
  This code segfaults when executed on gcc 4.01 on i586/linux (mandriva 2006)

  Works fine on gcc 3.x - couldn't find a newer version to test it on.

  PS I couldn't find anything in your bug writing guidelines what to put in
"host triplet" etc...

gcc -v:

Using built-in specs.
Target: i586-mandriva-linux-gnu
Configured with: ../configure --prefix=/usr --libexecdir=/usr/lib
--with-slibdir=/lib --mandir=/usr$
Thread model: posix
gcc version 4.0.1 (4.0.1-5mdk for Mandriva Linux release 2006.0) 
*/  

typedef unsigned int uint;

char* dummy;

struct Array {
    char**         ptr;

    void push(char* i)       { *(ptr+alloc()) = i; }

    uint alloc() {
       ptr = &dummy;
       return 0;
    }

};

int main()
{
   Array test;
   char* arg = "fred";
   test.push(arg);
   // can you please check check *test.ptr == arg, as that was what led
   // me to finding the bug wasn't
}


-- 
           Summary: App with assignment to  *(ptr + member_returning_zero())
                    segfaults
           Product: gcc
           Version: 4.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: fuchsia dot groan at virgin dot net


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26418

Reply via email to