Hi, I have posted this to comp.lang.c++, but hope someone here can help me as well. Thanks.
===================== I have a c++ program that compiles fine with earlier version of g++, but it no longer compiles with the newsest release 2.95.2. Here is the relevant bit of code: typedef struct List { void **hd; /* first item */ void **cr; /* current item */ void **tl; /* last item */ void **mx; /* max item before growing is required */ int grow_size; } List; Some macros defined: #define fast_list_first(l) ((l && l->hd)? *(l->cr = l->hd) : 0) #define fast_list_last(l) ((l && l->hd)? *(l->cr = l->tl) : 0) And a Function like this: void lfree(List *l) { void *item; for (item=fast_list_first(l); item != NULL; item=fast_list_last(l)) ###->>>> delete item; } When compiled with g++(2.95.2), it failed with this: [line 55 is the line marked with arrows above] % g++ -g -c misc.c misc.c: In function `void lfree(List *)': misc.c:55: warning: `void *' is not a pointer-to-object type It gives me the warning message, but no .o file is created, and if I put it in a makefile, it results: % make misc.o g++ -g -c misc.c misc.c: In function `void lfree(List *)': misc.c:55: warning: `void *' is not a pointer-to-object type make: *** [misc.o] Error 1 Thanks for any help in advance. Shao. -- ____________________________________________________________________________ Shao Zhang - Running Debian 2.1 ___ _ _____ Department of Communications / __| |_ __ _ ___ |_ / |_ __ _ _ _ __ _ University of New South Wales \__ \ ' \/ _` / _ \ / /| ' \/ _` | ' \/ _` | Sydney, Australia |___/_||_\__,_\___/ /___|_||_\__,_|_||_\__, | Email: [EMAIL PROTECTED] |___/ _____________________________________________________________________________