https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71447

            Bug ID: 71447
           Summary: problem with pointer arythmetic?
           Product: gcc
           Version: 4.9.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: johannesjanssens at telenet dot be
  Target Milestone: ---

code snippet :
--------------
typedef struct HstruWA *WA;
typedef struct HstruWA{ //NEWHANDLE(WA)
        int     qt;
        int     *ofs;
        char    *cnttypes;
        char    *record;
} externWA;

typedef struct internWA{
        char    **ptArray;
        int     recsize;

        WA wa;
        int qt_added;
        ADDED *added; //chain
} internWA;
typedef internWA *IWA;

/*
#define  mDATAOFFSET(QT)                       
(((QT+1)*sizeof(int))+(QT*sizeof(char)))
#define  mOFFSARRAY(_Record)            ((int*)(_Record+sizeof(int)))
#define  mCNTSARRAY(_Record,_QT)        ((char*)(_Record+sizeof(int)*(_QT+1)))
*/

        iwa->wa = ram.sf_alloc("wa1",iwa->wa, mDATAOFFSET(qt) + bufsize );
        iwa->wa->qt=qt;
        int *k = mOFFSARRAY(iwa->wa);
        iwa->wa->ofs=mOFFSARRAY(iwa->wa);



The problem :
-------------
assigning the same value to the variable k gives a different result from
assigning it to iwa->wa->ofs. Both are of type *int


in gdb:
-------
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff79cb01b in new_from_stringarray (s=0x4021c4 "Janssens,Johannes",
splitbalk=44 ',') at
/home/wannes/ontwikkeling/projecten/libwgpeUtil/wgpArr.c:154
154                             iwa->wa->ofs[idx]=thislen;
(gdb) p k
$8 = (int *) 0x605260
(gdb) p iwa->wa->ofs
$9 = (int *) 0x614a000000605260
(gdb)

Reply via email to