[Bug c/55570] [4.7/4.8 regression] Undefined variable in alignment compiler directive causes compiler segfault

mpolacek at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Dec 3 10:07:00 GMT 2012


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

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> 2012-12-03 10:07:22 UTC ---
That's because in 4.8/4.7 we introduced
c-family/c-common.c:check_user_alignment which contains:
  if (!INTEGRAL_TYPE_P (TREE_TYPE (align))
      || TREE_CODE (align) != INTEGER_CST)
    {
      error ("requested alignment is not an integer constant");
      return -1;
    }
but when we get undefined macro as a parameter, the TREE_CODE of align is
IDENTIFIER_NODE: 
(gdb) call debug_tree (align)
 <identifier_node 0x7ffff1aa9690 SOME_NOT_DEFINED_MACRO>
but we don't check for that.



More information about the Gcc-bugs mailing list