This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch c++]: Make structure in exten C block and for -fms-extension more permissive.
- From: Kai Tietz <ktietz70 at googlemail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, Jason Merrill <jason at redhat dot com>
- Date: Mon, 16 Aug 2010 21:59:27 +0200
- Subject: [patch c++]: Make structure in exten C block and for -fms-extension more permissive.
Hello,
This patch allows the use of typedef'ed names as arguments in structures, if the
structure is defined in an external C block. By this handling gets
more similar to
C. If the the option -fms-extensions is enabled, this is also allowed
for class in C++ - like the option -fpermissive.
This adjustments helps mingw and wine to mimic the behavior of VC in
such cases better.
ChangeLog for gcc/cp
2010-08-16 Kai Tietz
* class.c (note_name_declared_in_class): Make in 'extern "C"' blocks,
or if -fms-extensions is enabled check, check permissive.
Patch tested for x86_64-w64-mingw32 and i686-w64-mingw32. Ok for apply?
Kai
--
|? (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination
Index: class.c
===================================================================
--- class.c (revision 163283)
+++ class.c (working copy)
@@ -6807,7 +6807,9 @@
= current_class_stack[current_class_depth - 1].names_used;
if (!names_used)
return;
-
+ if ((!pedantic && current_lang_name == lang_name_c)
+ || flag_ms_extensions)
+ return;
n = splay_tree_lookup (names_used, (splay_tree_key) name);
if (n)
{