public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/19238] cannot change visibility of static variable in function template
[not found] <bug-19238-1068@http.gcc.gnu.org/bugzilla/>
@ 2006-03-21 2:49 ` jason at gcc dot gnu dot org
2006-03-21 3:19 ` jason at gcc dot gnu dot org
2006-03-21 16:33 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 7+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-03-21 2:49 UTC (permalink / raw)
To: gcc-bugs
--
jason at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |jason at gcc dot gnu dot org
|dot org |
Status|NEW |ASSIGNED
Last reconfirmed|2005-12-28 20:29:56 |2006-03-21 02:49:27
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19238
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/19238] cannot change visibility of static variable in function template
[not found] <bug-19238-1068@http.gcc.gnu.org/bugzilla/>
2006-03-21 2:49 ` [Bug c++/19238] cannot change visibility of static variable in function template jason at gcc dot gnu dot org
@ 2006-03-21 3:19 ` jason at gcc dot gnu dot org
2006-03-21 16:33 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 7+ messages in thread
From: jason at gcc dot gnu dot org @ 2006-03-21 3:19 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from jason at gcc dot gnu dot org 2006-03-21 03:19 -------
Subject: Bug 19238
Author: jason
Date: Tue Mar 21 03:19:06 2006
New Revision: 112239
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112239
Log:
PR c++/21764
* c-pragma.c (visstack): Move out of handle_pragma_visibility.
(push_visibility, pop_visibility): Likewise.
* c-pragma.h: Declare them.
* cp/name-lookup.h (struct cp_binding_level): Add has_visibility
bitfield.
* cp/name-lookup.c: Include c-pragma.h.
(push_namespace_with_attribs): Split out from push_namespace.
Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
(leave_scope): Pop visibility if appropriate.
* cp/parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
attributes on namespace declarations.
PR c++/19238
* cp/decl.c (cp_finish_decl): Call determine_visibility later.
(start_preparsed_function): Likewise.
* cp/cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
(TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
* cp/decl2.c (determine_visibility_from_class): Split out from...
(determine_visibility): ...here. Handle function scope and
nested classes.
(import_export_decl): Move visibility handling to
determine_visibility_from_class.
Added:
trunk/gcc/testsuite/g++.dg/ext/visibility/local1.C
trunk/gcc/testsuite/g++.dg/ext/visibility/namespace1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-pragma.c
trunk/gcc/c-pragma.h
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/name-lookup.c
trunk/gcc/cp/name-lookup.h
trunk/gcc/cp/parser.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19238
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/19238] cannot change visibility of static variable in function template
[not found] <bug-19238-1068@http.gcc.gnu.org/bugzilla/>
2006-03-21 2:49 ` [Bug c++/19238] cannot change visibility of static variable in function template jason at gcc dot gnu dot org
2006-03-21 3:19 ` jason at gcc dot gnu dot org
@ 2006-03-21 16:33 ` pinskia at gcc dot gnu dot org
2 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-21 16:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from pinskia at gcc dot gnu dot org 2006-03-21 16:32 -------
Fixed.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
Target Milestone|--- |4.2.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19238
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/19238] cannot change visibility of static variable in function template
2005-01-03 10:52 [Bug c++/19238] New: " jbeulich at novell dot com
` (2 preceding siblings ...)
2005-01-03 13:00 ` giovannibajo at libero dot it
@ 2005-01-03 16:14 ` mmitchel at gcc dot gnu dot org
3 siblings, 0 replies; 7+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-01-03 16:14 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From mmitchel at gcc dot gnu dot org 2005-01-03 16:14 -------
Yes, I agree that it seems logical for a static variable to have the same
visibility as its containing function, independently of whether or not that
containing function is a template instance.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19238
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/19238] cannot change visibility of static variable in function template
2005-01-03 10:52 [Bug c++/19238] New: " jbeulich at novell dot com
2005-01-03 11:05 ` [Bug c++/19238] " giovannibajo at libero dot it
2005-01-03 12:47 ` jbeulich at novell dot com
@ 2005-01-03 13:00 ` giovannibajo at libero dot it
2005-01-03 16:14 ` mmitchel at gcc dot gnu dot org
3 siblings, 0 replies; 7+ messages in thread
From: giovannibajo at libero dot it @ 2005-01-03 13:00 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From giovannibajo at libero dot it 2005-01-03 13:00 -------
Mark did some work on the visibility stuff, so I'm CC'ing him. Mark, this
sounds like a reasonable request to me. What do you think?
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |giovannibajo at libero dot
| |it, mmitchel at gcc dot gnu
| |dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19238
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/19238] cannot change visibility of static variable in function template
2005-01-03 10:52 [Bug c++/19238] New: " jbeulich at novell dot com
2005-01-03 11:05 ` [Bug c++/19238] " giovannibajo at libero dot it
@ 2005-01-03 12:47 ` jbeulich at novell dot com
2005-01-03 13:00 ` giovannibajo at libero dot it
2005-01-03 16:14 ` mmitchel at gcc dot gnu dot org
3 siblings, 0 replies; 7+ messages in thread
From: jbeulich at novell dot com @ 2005-01-03 12:47 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From jbeulich at novell dot com 2005-01-03 12:47 -------
I'm sorry, test case below. The expectation would be that the visibility
attribute gets inherited (as described above) from function template instances
and member functions of class template instances to their static variables.
If that conflicts with anything I can't think of right now, then the backup
solution would be to allow the attribute on such objects.
unsigned gu;
template<typename T> T test() __attribute__((__visibility__("hidden")));
template<typename T> T test() {
static T st;
return st = gu;
}
void test() {
test<unsigned>();
}
--
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
Ever Confirmed| |1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19238
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/19238] cannot change visibility of static variable in function template
2005-01-03 10:52 [Bug c++/19238] New: " jbeulich at novell dot com
@ 2005-01-03 11:05 ` giovannibajo at libero dot it
2005-01-03 12:47 ` jbeulich at novell dot com
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: giovannibajo at libero dot it @ 2005-01-03 11:05 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From giovannibajo at libero dot it 2005-01-03 11:05 -------
We need a testcase, and a suggestion for the behaviour you are expecting of GCC.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19238
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2006-03-21 16:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-19238-1068@http.gcc.gnu.org/bugzilla/>
2006-03-21 2:49 ` [Bug c++/19238] cannot change visibility of static variable in function template jason at gcc dot gnu dot org
2006-03-21 3:19 ` jason at gcc dot gnu dot org
2006-03-21 16:33 ` pinskia at gcc dot gnu dot org
2005-01-03 10:52 [Bug c++/19238] New: " jbeulich at novell dot com
2005-01-03 11:05 ` [Bug c++/19238] " giovannibajo at libero dot it
2005-01-03 12:47 ` jbeulich at novell dot com
2005-01-03 13:00 ` giovannibajo at libero dot it
2005-01-03 16:14 ` mmitchel at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).