This is the mail archive of the gcc-patches@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]

[PATCH] [C++] Fix C++/13507


This patch fixes PR C++/13507. The problem is that the type for the decl is shared with other decls. I made sure that I did not brake the other PR which the patches which causes this work.
This should get the right semantics which are needed for c++ and builtins.


Bootstrapped on powerpc-apple-darwin7.2.0 with no regressions.
Ok for the mainline and 3.3?

ChangeLog:

	* decl.c: When setting the type of an anticipated
	declaration, merge the existing type attributes
	and copy TYPE_RAISES_EXCEPTIONS instead of using
	the new type.


Patch: Index: decl.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v retrieving revision 1.1169 diff -u -p -r1.1169 decl.c --- decl.c 29 Dec 2003 02:42:16 -0000 1.1169 +++ decl.c 30 Dec 2003 06:49:29 -0000 @@ -1262,10 +1262,12 @@ duplicate_decls (tree newdecl, tree oldd for anticipated built-ins, for exception lists, etc... */ else if (DECL_ANTICIPATED (olddecl)) { - TYPE_ATTRIBUTES (TREE_TYPE (newdecl)) + TYPE_ATTRIBUTES (TREE_TYPE (olddecl)) = (*targetm.merge_type_attributes) (TREE_TYPE (olddecl), TREE_TYPE (newdecl)); - TREE_TYPE (olddecl) = TREE_TYPE (newdecl); + + TYPE_RAISES_EXCEPTIONS (TREE_TYPE (olddecl)) + = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (newdecl)); }

/* Whether or not the builtin can throw exceptions has no


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