On 11/7/05, Inder <[EMAIL PROTECTED]> wrote:
> Hi all,
> I am compiling small program on a SPARC gcc 3.4.3
>
> test.c
> -------------------------------------------------------
>
> struct test1
> {
>  int a;
>  int b;
>  char c;
> };
>
> struct test2
>  {
>  char a;
>  char b;
>  char c;
> };
>
> struct test3
> {
>  int a;
>  int b;
>  int c;
> };
>
> int main()
> {
>  struct test1* t1, t11;
>  struct test2* t2 ;
>  struct test3* t3;
>
>  t1 = &t11;
>  t2 = (struct t2*)t1;
>  t3 = (struct t3*)t1;
>  return 0;
> }
> --------------------------------------------------------
>
> I suppose such an assignment should give a warning
> "incompatible pointer type" but when compiling with
> gcc 3.4.3 no such warning is given even with -Wall enabled.
>
> Is this a bug in this version?

First of all, this list is for development of gcc, not with gcc.  Use
[EMAIL PROTECTED] for such questions.  Second, you are
assigning a pointer of type (struct t2*) to a pointer of type
(struct t2*).  This is of course fine - if you remove the cast, you
get the warning you want.  This is just like f.i. double x = (int)i.

Richard.

Reply via email to