This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/35246] declaration of threadprivate variable considered first use
- From: "hailijuan at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Feb 2008 04:37:24 -0000
- Subject: [Bug c++/35246] declaration of threadprivate variable considered first use
- References: <bug-35246-15289@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from hailijuan at gmail dot com 2008-02-18 04:37 -------
the error message was raised in finish_omp_threadprivate (cp/semantics.c). It
was the field TREE_USED set to 1 that trigered the error. build_aggr_init set
TREE_USED of variable a. the call frame looks like:
=>[1] build_aggr_init(exp = 0xfed99a00, init = 0xfee99ad0, flags = 0), line
1087 in "init.c"
[2] check_initializer(decl = 0xfed99a00, init = 0xfee99ad0, flags = 0,
cleanup = 0xffbff26c), line 4881 in "decl.c"
[3] cp_finish_decl(decl = 0xfed99a00, init = 0xfee99ad0, init_const_expr_p =
'\001', asmspec_tree = (nil), flags = 0), line 5292 in "decl.c"
[4] cp_parser_init_declarator(parser = 0xfee973b0, decl_specifiers = (nil),
checks = (nil), function_definition_allowed_p = '\001', member_p = '\0',
declares_class_or_enum = 0, function_definition_p = (nil)), line 11359 in
"parser.c"
[5] cp_parser_simple_declaration(parser = 0xfee973b0,
function_definition_allowed_p = '\001'), line 7433 in "parser.c"
[6] cp_parser_block_declaration(parser = 0xfee973b0, statement_p = '\0'),
line 7333 in "parser.c"
[7] cp_parser_declaration(parser = 0xfee973b0), line 7249 in "parser.c"
[8] cp_parser_declaration_seq_opt(parser = 0xfee973b0), line 7144 in
"parser.c"
[9] cp_parser_translation_unit(parser = 0xfee973b0), line 2847 in "parser.c"
[10] c_parse_file(), line 19552 in "parser.c"
[11] c_common_parse_file(set_yydebug = 0), line 1226 in "c-opts.c"
[12] compile_file(), line 1040 in "toplev.c"
[13] do_compile(), line 2037 in "toplev.c"
[14] toplev_main(argc = 0, argv = 0xffbff804), line 2069 in "toplev.c"
[15] main(argc = 17, argv = 0xffbff804), line 35 in "main.c"
so we'd know if the variables actually used in the source lines before raising
such error messages.
--
hailijuan at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hailijuan at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35246