>From this thread:
http://gcc.gnu.org/ml/gcc-patches/2009-02/msg00271.html

Compiling with -c -g -O2 -Wall from r143978, I only get one warning, but should
get two.

struct A 
{ 
  int j;
  int i; 
};

void foo()
{
  char buf[sizeof(struct A)];

  // warns
  ((struct A*)buf)->i = 1;

  // does not warn
  struct A* p = (struct A*) buf;
  p->i = 4;
}

Gives:
alias2.c: In function ‘void foo()’:
alias2.c:12: warning: dereferencing type-punned pointer will break
strict-aliasing rules


-- 
           Summary: missed strict-aliasing warning
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bkoz at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39117

Reply via email to