svn commit: r289150 - head/contrib/gcc/cp

Pedro F. Giffuni pfg at FreeBSD.org
Sun Oct 11 19:58:58 UTC 2015


Author: pfg
Date: Sun Oct 11 19:58:57 2015
New Revision: 289150
URL: https://svnweb.freebsd.org/changeset/base/289150

Log:
  Correct handling of enum attributes with g++
  
  From OpenBSD's commit log:
  
  This was responsible for memory corruption with recent versions
  of Mesa where c and c++ code share a header with a packed enum type.
  
  Reference:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39219
  
  Obtained from:	OpenBSD (CVS rev. 1.2)
  MFC after:	1 week

Modified:
  head/contrib/gcc/cp/parser.c

Modified: head/contrib/gcc/cp/parser.c
==============================================================================
--- head/contrib/gcc/cp/parser.c	Sun Oct 11 19:30:09 2015	(r289149)
+++ head/contrib/gcc/cp/parser.c	Sun Oct 11 19:58:57 2015	(r289150)
@@ -10906,6 +10906,7 @@ cp_parser_enum_specifier (cp_parser* par
   if (cp_parser_allow_gnu_extensions_p (parser))
     {
       tree trailing_attr = cp_parser_attributes_opt (parser);
+      trailing_attr = chainon (trailing_attr, attributes);
       cplus_decl_attributes (&type,
 			     trailing_attr,
 			     (int) ATTR_FLAG_TYPE_IN_PLACE);


More information about the svn-src-head mailing list