re PR c++/58724 (ICE with attribute [[gnu::visibility("default")]] on namespace)
2013-11-05 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58724 * doc/extend.texi [visibility ("visibility_type")]: Add example about visibility attribute on namespace declaration. /cp 2013-11-05 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58724 * name-lookup.c (handle_namespace_attrs): Use get_attribute_name. /testsuite 2013-11-05 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58724 * g++.dg/cpp0x/gen-attrs-56.C: New. From-SVN: r204401
This commit is contained in:
parent
9c39fca1bf
commit
33b5d6da2a
@ -1,3 +1,9 @@
|
||||
2013-11-05 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/58724
|
||||
* doc/extend.texi [visibility ("visibility_type")]: Add example
|
||||
about visibility attribute on namespace declaration.
|
||||
|
||||
2013-11-05 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR ipa/58492
|
||||
@ -27,7 +33,7 @@
|
||||
|
||||
2013-11-05 Andrew MacLeod <amacleod@redhat.com>
|
||||
|
||||
* tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from
|
||||
* tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from
|
||||
gimple.h and the rest of the condition in eliminate_build.
|
||||
(eliminate_build): Call new routine.
|
||||
* gimple.h (phi_ssa_name_p): Delete.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-11-05 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/58724
|
||||
* name-lookup.c (handle_namespace_attrs): Use get_attribute_name.
|
||||
|
||||
2013-11-05 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
* parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
|
||||
|
@ -3571,7 +3571,7 @@ handle_namespace_attrs (tree ns, tree attributes)
|
||||
|
||||
for (d = attributes; d; d = TREE_CHAIN (d))
|
||||
{
|
||||
tree name = TREE_PURPOSE (d);
|
||||
tree name = get_attribute_name (d);
|
||||
tree args = TREE_VALUE (d);
|
||||
|
||||
if (is_attribute_p ("visibility", name))
|
||||
|
@ -4275,6 +4275,12 @@ the One Definition Rule; for example, it is usually not useful to mark
|
||||
an inline method as hidden without marking the whole class as hidden.
|
||||
|
||||
A C++ namespace declaration can also have the visibility attribute.
|
||||
|
||||
@smallexample
|
||||
namespace nspace1 __attribute__ ((visibility ("protected")))
|
||||
@{ /* @r{Do something.} */; @}
|
||||
@end smallexample
|
||||
|
||||
This attribute applies only to the particular namespace body, not to
|
||||
other definitions of the same namespace; it is equivalent to using
|
||||
@samp{#pragma GCC visibility} before and after the namespace
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-11-05 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/58724
|
||||
* g++.dg/cpp0x/gen-attrs-56.C: New.
|
||||
|
||||
2013-11-05 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR ipa/58492
|
||||
|
5
gcc/testsuite/g++.dg/cpp0x/gen-attrs-56.C
Normal file
5
gcc/testsuite/g++.dg/cpp0x/gen-attrs-56.C
Normal file
@ -0,0 +1,5 @@
|
||||
// PR c++/58724
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
namespace foo __attribute__((visibility("default"))) {}
|
||||
namespace bar [[gnu::visibility("default")]] {}
|
Loading…
Reference in New Issue
Block a user