diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2010-08-17 09:52:30 +0000 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2010-08-17 11:52:30 +0200 |
commit | 8ce1235bfa4d3737f58d356d5221c75b33463afc (patch) | |
tree | 3de242d013e7c9b5986acbcea9b7886716faa13b | |
parent | f9abf412e2b67046bf906a70f1f19ef569aa55d1 (diff) | |
download | gcc-8ce1235bfa4d3737f58d356d5221c75b33463afc.zip gcc-8ce1235bfa4d3737f58d356d5221c75b33463afc.tar.gz gcc-8ce1235bfa4d3737f58d356d5221c75b33463afc.tar.bz2 |
class.c (note_name_declared_in_class): Make in 'extern "C"' blocks...
2010-08-17 Kai Tietz <kai.tietz@onevision.com>
* class.c (note_name_declared_in_class): Make in 'extern "C"' blocks,
or if -fms-extensions is enabled check, check permissive.
From-SVN: r163300
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/class.c | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c202af4..b373266 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2010-08-17 Kai Tietz <kai.tietz@onevision.com> + + * class.c (note_name_declared_in_class): Make in 'extern "C"' blocks, + or if -fms-extensions is enabled check, check permissive. + 2010-08-09 Jason Merrill <jason@redhat.com> PR c++/45236 diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 73bcb75..c00b7de 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -6807,7 +6807,13 @@ note_name_declared_in_class (tree name, tree decl) = current_class_stack[current_class_depth - 1].names_used; if (!names_used) return; - + /* The C language allows members to be declared with a type of the same + name, and the C++ standard says this diagnostic is not required. So + allow it in extern "C" blocks unless predantic is specified. + Allow it in all cases if -ms-extensions is specified. */ + if ((!pedantic && current_lang_name == lang_name_c) + || flag_ms_extensions) + return; n = splay_tree_lookup (names_used, (splay_tree_key) name); if (n) { |