This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Clarification on gcc tail call optimization


On 31/10/16 10:28, raghesh wrote:
> I am trying to perform tail call optimization on the code given at the
> end of this mail (it is also attached).

 $ gcc -Wall -O2 struct.c
struct.c: In function 'h':
struct.c:25:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  struct arglist_g al_g = *((struct arglist_g *) &al);
                                    ^
struct.c: In function 'g':
struct.c:30:36: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  struct arglist_f al_f = *((struct arglist_f *) &al);
                                    ^
struct.c:37:40: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  struct arglist_max al_max = *((struct arglist_max *) &al_g);
                                        ^
struct.c:30:19: warning: unused variable 'al_f' [-Wunused-variable]
  struct arglist_f al_f = *((struct arglist_f *) &al);
                   ^
struct.c: In function 'f':
struct.c:47:40: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  struct arglist_max al_max = *((struct arglist_max *) &al_f);
                                        ^
Please fix these bugs and then get back to us.

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]