quicoju wrote:
gdbtypes.c: In function ‘recursive_dump_type’:
gdbtypes.c:3059: error: invalid lvalue in increment
3058 3059 obstack_ptr_grow (&dont_print_type_obstack, type);

Any advise to solve the problem?
gcc 3.4.x issues no errors nor even warnings on this code. Seems like gcc 4.x.x is more pedantic. Replace obstack_ptr_grow() (and obstack_int_grow()) macro definition in obstack.h with the same from newer version of gdb:

# define obstack_ptr_grow(OBSTACK,datum)                                \
__extension__                                                           \
({ struct obstack *__o = (OBSTACK);                                     \
   if (__o->next_free + sizeof (void *) > __o->chunk_limit)            \
     _obstack_newchunk (__o, sizeof (void *));                          \
   obstack_ptr_grow_fast (__o, datum); })

# define obstack_int_grow(OBSTACK,datum)                                \
__extension__                                                           \
({ struct obstack *__o = (OBSTACK);                                     \
   if (__o->next_free + sizeof (int) > __o->chunk_limit)               \
     _obstack_newchunk (__o, sizeof (int));                             \
   obstack_int_grow_fast (__o, datum); })

# define obstack_ptr_grow_fast(OBSTACK,aptr)                            \
__extension__                                                           \
({ struct obstack *__o1 = (OBSTACK);                                    \
   *(const void **) __o1->next_free = (aptr);                                \
   __o1->next_free += sizeof (const void *);                         \
   (void) 0; })

# define obstack_int_grow_fast(OBSTACK,aint)                            \
__extension__                                                           \
({ struct obstack *__o1 = (OBSTACK);                                    \
   *(int *) __o1->next_free = (aint);                                        \
   __o1->next_free += sizeof (int);                                  \
   (void) 0; })

  Sergey.

Reply via email to