aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
AgeCommit message (Collapse)AuthorFilesLines
2007-09-29re PR c++/33094 (ICE on valid C++ virtual template static member in ↵Jason Merrill4-2/+15
anonymous namespace) PR c++/33094 * decl.c (make_rtl_for_nonlocal_decl): It's ok for a member constant to not have DECL_EXTERNAL if it's file-local. From-SVN: r128890
2007-09-29RevertOllie Wild4-18/+16
2007-09-27 Ollie Wild <aaw@google.com> gcc/ * varasm.c (compare_constant): Removed call to lang_hooks.expand_constant. (copy_constants): Removed call to lang_hooks.expand_constant. (compute_reloc_for_constant): Removed call to lang_hooks.expand_constant. (output_addressed_constants): Removed call to lang_hooks.expand_constant. (constructor_static_from_elts_p): Removed call to lang_hooks.expand_constant. (output_constant): Removed calls to lang_hooks.expand_constant. * langhooks.h (struct lang_hooks): Removed field expand_constant. * langhooks-def.h (lhd_return_tree): Removed. (LANG_HOOKS_EXPAND_CONSTANT): Removed. (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. * langhooks.c (lhd_return_tree): Removed. gcc/cp/ * typeck2.c (digest_init): Call cplus_expand_constant after convert_for_initialization. * cp-objcp-common.h (LANG_HOOKS_EXPAND_CONSTANT): Removed. * expr.c (cplus_expand_constant): Updated function description. From-SVN: r128881
2007-09-28re PR c++/10179 (alignment attributes are not inherited correctly with empty ↵Jason Merrill2-3/+21
classes) PR c++/10179 * class.c (layout_empty_base): Take rli parameter, update rli->record_align if empty base has user-specified alignment. (build_base_field): Pass rli to it. From-SVN: r128871
2007-09-28re PR c++/33213 (Broken diagnostic: 'type_pack_expansion' not supported by ↵Paolo Carlini2-0/+6
dump_decl) cp/ 2007-09-28 Paolo Carlini <pcarlini@suse.de> PR c++/33213 * error.c (dump_decl): Deal with TYPE_PACK_EXPANSION. testsuite/ 2007-09-28 Paolo Carlini <pcarlini@suse.de> PR c++/33213 * g++.dg/cpp0x/variadic79.C: New. From-SVN: r128870
2007-09-28re PR c++/31434 (ICE with invalid use of parameter pack in function arg)Jakub Jelinek1-0/+7
PR c++/31434 * tree.c (cp_build_qualified_type_real): Handle TYPE_PACK_EXPANSION qualification by creating qualified PACK_EXPANSION_PATTERN and then calling make_pack_expansion on it. From-SVN: r128867
2007-09-28re PR c++/33118 (#'argument_pack_select' not supported by ↵Paolo Carlini2-26/+14
dump_expr#<expression error>) 2007-09-28 Paolo Carlini <pcarlini@suse.de> PR c++/33118 * error.c (dump_expr): Deal with ARGUMENT_PACK_SELECT. (dump_type): Use dump_template_argument for TYPE_ARGUMENT_PACK. (dump_parameters): Just call dump_type for argument packs too. From-SVN: r128866
2007-09-28re PR c++/31434 (ICE with invalid use of parameter pack in function arg)Jakub Jelinek1-0/+7
PR c++/31434 * tree.c (cp_build_qualified_type_real): Handle TYPE_PACK_EXPANSION qualification by creating qualified PACK_EXPANSION_PATTERN and then calling make_pack_expansion on it. * g++.dg/cpp0x/variadic80.C: New test. From-SVN: r128861
2007-09-28varasm.c (compare_constant): Removed call to lang_hooks.expand_constant.Ollie Wild4-6/+25
gcc/ * varasm.c (compare_constant): Removed call to lang_hooks.expand_constant. (copy_constants): Removed call to lang_hooks.expand_constant. (compute_reloc_for_constant): Removed call to lang_hooks.expand_constant. (output_addressed_constants): Removed call to lang_hooks.expand_constant. (constructor_static_from_elts_p): Removed call to lang_hooks.expand_constant. (output_constant): Removed calls to lang_hooks.expand_constant. * langhooks.h (struct lang_hooks): Removed field expand_constant. * langhooks-def.h (lhd_return_tree): Removed. (LANG_HOOKS_EXPAND_CONSTANT): Removed. (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. * langhooks.c (lhd_return_tree): Removed. gcc/cp/ * typeck2.c (digest_init): Call cplus_expand_constant after convert_for_initialization. * cp-objcp-common.h (LANG_HOOKS_EXPAND_CONSTANT): Removed. * expr.c (cplus_expand_constant): Updated function description. From-SVN: r128859
2007-09-27decl2.c (is_late_template_attribute): Don't crash on unknown attribute.Jason Merrill2-0/+9
* decl2.c (is_late_template_attribute): Don't crash on unknown attribute. From-SVN: r128844
2007-09-27re PR c++/33493 (Broken diagnostic: 'dl_expr' not supported by dump_expr)Paolo Carlini4-2/+19
/cp 2007-09-27 Paolo Carlini <pcarlini@suse.de> PR c++/33493 * error.c (dump_expr): Deal with DELETE_EXPR and VEC_DELETE_EXPR. * cxx-pretty-print.c (pp_cxx_delete_expression): Add missing spaces in the formatting. * cxx-pretty-print.h (pp_cxx_delete_expression): Declare. /testsuite 2007-09-27 Paolo Carlini <pcarlini@suse.de> PR c++/33493 * g++.dg/template/error31.C: New. From-SVN: r128831
2007-09-27builtins.c (expand_builtin, [...]): Use new %K format string specifier for ↵Jakub Jelinek3-9/+103
diagnostics. * builtins.c (expand_builtin, expand_builtin_object_size, expand_builtin_memory_chk, maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning): Use new %K format string specifier for diagnostics. * expr.c (expand_expr_real_1): Likewise. * langhooks-def.h (struct diagnostic_info): Add forward decl. (lhd_print_error_function): Add third argument. * langhooks.h (struct diagnostic_info): Add forward decl. (struct lang_hooks): Add third argument to print_error_function. * diagnostic.h (diagnostic_info): Add abstract_origin field. (diagnostic_last_function_changed, diagnostic_set_last_function): Add second argument. (diagnostic_report_current_function): Likewise. * toplev.c (announce_function): Pass NULL as second argument to diagnostic_set_last_function. * diagnostic.c (diagnostic_report_current_function): Add second argument, pass it as third argument to lang_hooks.print_error_function. (default_diagnostic_starter): Pass DIAGNOSTIC as second argument to diagnostic_report_current_function. (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin and message.abstract_origin. (verbatim): Initialize abstract_origin. * pretty-print.h (text_info): Add abstract_origin field. * pretty-print.c (pp_base_format): Handle %K. * langhooks.c (lhd_print_error_function): Add third argument. If diagnostic->abstract_origin, print virtual backtrace. * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K. (init_dynamic_diag_info): Likewise. cp/ * error.c (cxx_print_error_function): Add third argument, pass it over to lhd_print_error_function. (cp_print_error_function): If diagnostic->abstract_origin, print virtual backtrace. * cp-tree.h (struct diagnostic_info): New forward decl. (cxx_print_error_function): Add third argument. java/ * lang.c (java_print_error_function): Add third argument. testsuite/ * lib/prune.exp: Prune also "^In function .*$" lines and "^ inlined from .*$" lines. From-SVN: r128830
2007-09-25re PR c++/33207 (ICE redeclaring namespace as struct)Simon Martin2-3/+9
gcc/cp/ 2007-09-25 Simon Martin <simartin@users.sourceforge.net> PR c++/33207 * name-lookup.c (pushtag): Do not create an implicit typedef before the associated type declaration is known to be valid. gcc/testsuite/ 2007-09-25 Simon Martin <simartin@users.sourceforge.net> PR c++/33207 * g++.dg/parse/crash38.C: New test. From-SVN: r128769
2007-09-25tree.c (cxx_printable_name): Compare FUNCTION_DECL uids rather than pointers.Jakub Jelinek2-6/+10
* tree.c (cxx_printable_name): Compare FUNCTION_DECL uids rather than pointers. From-SVN: r128761
2007-09-25re PR c++/14688 (Mis-matched calling convention on virtual functions ↵Danny Smith2-0/+17
accepted without error) PR c++/14688 * config/i386/i386.c (ix86_comp_type_attributes): Check METHOD_TYPE too. cp * search.c (check_final_overrider): Fail if targetm.comp_type_attributes returns 0. testsuite * g++.dg/inherit/override_attribs.C: New file. From-SVN: r128740
2007-09-24re PR c++/33239 (internal compiler error in instantiate_class_template, at ↵Jason Merrill2-3/+16
cp/pt.c:5666) PR c++/33239 * pt.c (resolve_typename_type): Don't look things up in the original template if it would mean losing template arguments. From-SVN: r128725
2007-09-24re PR c++/33506 (TYPE_RAISES_EXCEPTIONS dumped with attributes)Jakub Jelinek4-0/+24
PR c++/33506 * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq field. * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ. * tree.c (type_hash_eq): For FUNCTION_TYPE use lang_hooks.type.type_hash_eq in addition to generic tests. * cp-tree.h (cxx_type_hash_eq): New prototype. * cp-objcp-common.h (LANG_HOOKS_TYPE_HASH_EQ): Redefine. * tree.c (cxx_type_hash_eq): New function. * g++.dg/ext/attrib29.C: New test. From-SVN: r128718
2007-09-24re PR c++/33185 (ICE: canonical types differ for identical types T [] and T [])Douglas Gregor2-1/+8
2007-09-24 Douglas Gregor <doug.gregor@gmail.com> PR c++/33185 * tree.c (cp_build_qualified_type_real): Build a canonical ARRAY_TYPE if the original ARRAY_TYPE was not a canonical type. From-SVN: r128717
2007-09-24re PR c++/33112 (ICE : canonical types differ for identical types const ↵Douglas Gregor2-70/+61
_CharT* [14] and const _CharT* [14]) 2007-09-24 Douglas Gregor <doug.gregor@gmail.com> PR c++/33112 PR c++/33185 * tree.c (cplus_array_compare): Compare pointers, not types. (build_cplus_array_type_1): Store new array type into the hash table before building the canonical type; build the canonical type correctly. (cp_build_qualified_type_real): Put all of the array types with cv-qualified element types into the C++ array hash table, built as variants of the unqualified versions. From-SVN: r128711
2007-09-23re PR c++/16370 (__attribute__((deprecated)) not useful on classes, and ugly ↵Jason Merrill2-0/+10
function name listed for deperecation warnings on constructor) PR c++/16370 * decl.c (grokdeclarator): Look through implicit TYPE_DECLs for deprecation warnings. From-SVN: r128691
2007-09-23re PR c++/15269 (__attribute__((deprecated)) broken with inline, ignored ↵Jason Merrill2-0/+8
with pure virtual, misreported after definition) PR c++/15269 * call.c (build_over_call): Warn about deprecated virtuals. From-SVN: r128682
2007-09-22re PR c++/19407 (vector keyword in typedef inside template struct ignored)Jason Merrill4-45/+61
PR c++/19407 * cp/cp-tree.h (ATTR_IS_DEPENDENT): New macro. (MAYBE_TAGGED_TYPE_P): Remove. * cp/pt.c (apply_late_template_attributes): Check ATTR_IS_DEPENDENT instead of calling is_late_template_attribute again. (tsubst_decl) [TYPE_DECL]: Just check if the name is the tag. (tsubst): A typedef is a TYPE_NAME != TYPE_MAIN_DECL. Don't crash on typedefs from non-template classes. * cp/decl2.c (grokfield): Don't sorry about attrs on template parms. (is_late_template_attribute): All attributes applied to template parms or typename types are dependent. Static, take decl. (splice_template_attributes): Pass decl through. (save_template_attributes): Likewise. * attribs.c (lookup_attribute_spec): Split out... (decl_attributes): From here. * tree.h: Declare it. From-SVN: r128681
2007-09-22re PR c++/33496 (ICE with sizeof for invalid argument pack)Jakub Jelinek1-0/+8
PR c++/33496 * pt.c (tsubst_copy) <case SIZEOF_EXPR>: Handle error_mark_node returned from tsubst_pack_expansion. (tsubst_copy_and_build) <case SIZEOF_EXPR>: Likewise. (tsubst_copy_and_build) <case CONSTRUCTOR>: Likewise. * g++.dg/cpp0x/variadic76.C: New test. * g++.dg/cpp0x/variadic77.C: New test. * g++.dg/cpp0x/variadic78.C: New test. From-SVN: r128675
2007-09-20re PR c++/33460 (ICE with static member in anonymous union)Paolo Carlini3-8/+24
cp/ 2007-09-20 Paolo Carlini <pcarlini@suse.de> PR c++/33460 * semantics.c (finish_id_expression): Use consistently context_for_name_lookup. * decl.c (fixup_anonymous_aggr): Fix error message for anonymous struct (vs union). testsuite/ 2007-09-20 Paolo Carlini <pcarlini@suse.de> PR c++/33460 * g++.dg/ext/anon-struct6.C: New. From-SVN: r128637
2007-09-20re PR c++/33496 (ICE with sizeof for invalid argument pack)Jakub Jelinek1-1/+7
PR c++/33496 * pt.c (tsubst_copy) <case SIZEOF_EXPR>: Handle error_mark_node returned from tsubst_pack_expansion. (tsubst_copy_and_build) <case SIZEOF_EXPR>: Likewise. (tsubst_copy_and_build) <case CONSTRUCTOR>: Likewise. * g++.dg/cpp0x/variadic76.C: New test. * g++.dg/cpp0x/variadic77.C: New test. * g++.dg/cpp0x/variadic78.C: New test. From-SVN: r128630
2007-09-20re PR c++/7586 (Incorrect handling of attributes in template codes)Jason Merrill5-50/+55
PR c++/7586 * pt.c (tsubst): Handle typedefs by looking for the specialization. (retrieve_specialization): Only tagged types use DECL_TEMPLATE_INSTANTIATIONS. (instantiate_class_template): Push nested classes too. (tsubst_decl) [TYPE_DECL]: Only check for canonical decl for tagged types. * cp-tree.h (MAYBE_TAGGED_TYPE_P): New macro. * init.c (is_aggr_type): Remove redundant tests. * class.c (push_nested_class): Use CLASS_TYPE_P. From-SVN: r128621
2007-09-20re PR c++/33459 (ICE on reference member in union)Paolo Carlini2-6/+14
cp/ 2007-09-20 Paolo Carlini <pcarlini@suse.de> PR c++/33459 * init.c (build_zero_init): If, recursively, build_zero_init returns a NULL_TREE, do not append it to the VEC of constructors. testsuite/ 2007-09-20 Paolo Carlini <pcarlini@suse.de> PR c++/33459 * g++.dg/init/ref14.C: New. From-SVN: r128615
2007-09-18re PR c++/17743 (dependent expressions in attributes)Jason Merrill3-7/+92
PR c++/17743 * pt.c (apply_late_template_attributes): Set processing_template_decl. (tsubst_decl) [TYPE_DECL]: Preserve naming typedef, pass ATTR_FLAG_TYPE_IN_PLACE. (tsubst): Do unqualified lookup to find typedefs from current class. [ARRAY_TYPE]: Propagate alignment info. * decl2.c (is_late_template_attribute): Only defer handling of attribute aligned if the expression is dependent. (save_template_attributes): If we're deferring any attributes, make this a naming typedef. From-SVN: r128590
2007-09-18PR c++/33462 (again)Paolo Carlini2-1/+7
cp/ 2007-09-18 Paolo Carlini <pcarlini@suse.de> PR c++/33462 (again) * cxx-pretty-print.c (pp_cxx_va_arg_expression): Print va_arg instead of __builtin_va_arg. testsuite/ 2007-09-18 Paolo Carlini <pcarlini@suse.de> PR c++/33462 (again) * g++.dg/ext/va-arg1.C: Adjust. From-SVN: r128585
2007-09-18re PR c++/33462 (Broken diagnostic: 'va_arg_expr' not supported by dump_expr)Paolo Carlini4-0/+30
/cp 2007-09-18 Paolo Carlini <pcarlini@suse.de> PR c++/33462 * cxx-pretty-print.c (pp_cxx_va_arg_expression): Add. (pp_cxx_primary_expression): Use it. * cxx-pretty-print.h (pp_cxx_va_arg_expression): Declare. * error.c (dump_expr): Use it. /testsuite 2007-09-18 Paolo Carlini <pcarlini@suse.de> PR c++/33462 * g++.dg/ext/va-arg1.C: New. From-SVN: r128584
2007-09-18re PR c++/33463 (Broken diagnostic: 'typeid_expr' not supported by dump_expr)Paolo Carlini4-8/+29
/cp 2007-09-18 Paolo Carlini <pcarlini@suse.de> PR c++/33463 * cxx-pretty-print.c (pp_cxx_postfix_expression): Split out case TYPEID_EXPR to... (pp_cxx_typeid_expression): ... here; use pp_cxx_left_paren and pp_cxx_right_paren. * cxx-pretty-print.h (pp_cxx_typeid_expression): Declare. * error.c (dump_expr): Use it. /testsuite 2007-09-18 Paolo Carlini <pcarlini@suse.de> PR c++/33463 * g++.dg/rtti/typeid6.C: New. From-SVN: r128582
2007-09-18re PR c++/33464 (Broken diagnostic: 'trait_expr' not supported by dump_expr)Paolo Carlini4-2/+111
/cp 2007-09-18 Paolo Carlini <pcarlini@suse.de> PR c++/33464 * cxx-pretty-print.c (pp_cxx_trait_expression): Add. (pp_cxx_primary_expression): Use it. * cxx-pretty-print.h (pp_cxx_trait_expression): Declare. * error.c (dump_expr): Use it. /testsuite 2007-09-18 Paolo Carlini <pcarlini@suse.de> PR c++/33464 * g++.dg/ext/is_class_error.C: Rename to is_class_error1.C. * g++.dg/ext/is_class_error2.C: New. From-SVN: r128578
2007-09-16re PR c++/33124 (C++ frontend should not warn about new a[0] in template ↵Paolo Carlini2-15/+6
context) /cp 2007-09-16 Paolo Carlini <pcarlini@suse.de> PR c++/33124 * init.c (build_new): Remove warning for zero-element allocations. /testsuite 2007-09-16 Paolo Carlini <pcarlini@suse.de> PR c++/33124 * g++.dg/warn/new1.C: Adjust. * g++.dg/torture/str_empty.C: Likewise. From-SVN: r128531
2007-09-16re PR c++/32756 (wrong ambiguous overload error?)Nathan Sidwell2-11/+28
cp/ PR c++/32756 * call.c (maybe_handle_implicit_object): Set this_p, clear rvaluedness_matches_p. (compare_ics): Do not compare rvaluedness matching when one of the operands is an implicit object. testsuite/ PR c++/32756 * g++.dg/overload/operator3.C: New. From-SVN: r128528
2007-09-14PR c++/17743, c++/19163Jason Merrill4-1/+128
PR c++/17743, c++/19163 * decl2.c (is_late_template_attribute): New fn. (splice_template_attributes, save_template_attributes): New fns. (cplus_decl_attributes): Call save_template_attributes. * pt.c (apply_late_template_attributes): New fn. (instantiate_class_template, tsubst_decl): Use it. * cp-tree.h: Declare is_late_template_attribute. From-SVN: r128488
2007-09-13c-common.c (fname_as_string): Update.Tom Tromey2-7/+13
gcc * c-common.c (fname_as_string): Update. * c-parser.c (c_parser) <lex_untranslated_string>: New field. (c_lex_one_token): Update. Add 'parser' argument. (c_parser_simple_asm_expr): Update. (c_parser_attributes): Update. (c_parser_asm_statement): Update. (c_parser_asm_operands): Update. (c_parser_peek_token): Update. (c_parser_peek_2nd_token): Update. * c-lex.c (c_lex_string_translate): Remove. (c_lex_return_raw_strings): Likewise. (c_lex_with_flags): Added 'lex_flags' argument. (lex_string): Added 'translate' argument. * c-pragma.h (c_lex_with_flags): Update. (c_lex_string_translate, c_lex_return_raw_strings): Remove. (C_LEX_STRING_NO_TRANSLATE): New define. (C_LEX_RAW_STRINGS): Likewise. gcc/cp * parser.c (cp_lexer_new_main): Don't use c_lex_return_raw_strings. (cp_lexer_get_preprocessor_token): Update. Add special case when lexer is NULL. From-SVN: r128479
2007-09-11decl.c (java_expand_body): Kill.Jan Hubicka5-22/+15
* decl.c (java_expand_body): Kill. (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. * toplev.c (process_options): all frontends now do unit-at-a-time. * cgraphunit.c: update comments. (cgraph_expand_function): call passmanager dirrectly; emit thunks. * c-decl.c (finish_function): use cgraph_add_new_function. * method.c (use_thunk): Use tree_rest_of_compilation * cp-objecp-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Define. * cp-tree.h (expand_body): Kill. (emit_associated_thunks): Declare. * semantics.c (emit_associated_thunks): Export. (expand_body): Kill. * misc.c (gnat_expand_body): Kill. (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. * f95-lang.c (gfc_expand_function): Kill. (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. * function.c (expand_function_end): We are always unit-at-a-time. From-SVN: r128367
2007-09-09re PR c++/33324 (ICE on new array of objects with virtual destructors.)David Daney2-2/+10
PR c++/33324 * init.c (build_new_1): Use POINTER_PLUS_EXPR instead of MINUS_EXPR to calculate cookie_ptr. From-SVN: r128312
2007-09-08re PR c++/33342 (ICE in dependent_type_p, at cp/pt.c:15081)Jason Merrill2-0/+10
PR c++/33342 * pt.c (most_specialized_class): Set processing_template_decl while tsubsting partial spec args. From-SVN: r128285
2007-09-06* decl2.c (get_guard): Copy visibility from the guarded variable.Jason Merrill2-0/+6
From-SVN: r128226
2007-09-06* semantics.c (expand_body): Do not mark arguments of clones used.Jan Hubicka2-20/+4
From-SVN: r128209
2007-09-06re PR c++/32674 (ICE in lvalue_p_1 initialising static variable inside ↵Paolo Carlini2-1/+21
template class) /cp 2007-09-06 Paolo Carlini <pcarlini@suse.de> PR c++/32674 * decl.c (cp_finish_decl): When processing_template_decl, deal correctly with init as TREE_LIST. /testsuite 2007-09-06 Paolo Carlini <pcarlini@suse.de> PR c++/32674 * g++.dg/template/static31.C: New. From-SVN: r128201
2007-09-06tree-cfg.c (remove_bb): Only warn if line is non-zero.Tom Tromey2-1/+9
gcc: * tree-cfg.c (remove_bb): Only warn if line is non-zero. * c-pch.c (c_common_read_pch): Restore current location after reading PCH file. * tree.c (expand_location): Update. (expr_filename): Changed return type. Unified the two cases. (expr_lineno): Likewise. (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME as lvalues. * toplev.c (line_table): Changed type. (general_init): Update. (realloc_for_line_map): New function. (general_init): Allocate line_table using GC. * fix-header.c (line_table): Changed type. (read_scan_file): Update. (read_scan_file): Update. * c-ppoutput.c (maybe_print_line): Update. (print_line): Update. (cb_line_change): Update. (cb_define): Update. (pp_file_change): Update. * c-opts.c (c_common_init_options): Update. (finish_options): Update. (push_command_line_include): Update. * c-lex.c (cb_line_change): Update. (cb_def_pragma): Update. (cb_define): Update. (cb_undef): Update. (c_lex_with_flags): Use cpp_get_token_with_location. * input.h (line_table): Changed type. (location_from_locus): New macro. * tree.h (EXPR_FILENAME): No longer an lvalue. (EXPR_LINENO): Likewise. (expr_locus, set_expr_locus): Declare separately for USE_MAPPED_LOCATION. (expr_filename, expr_lineno): Changed return type. * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS. * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus. (expand_gimple_basic_block): Likewise. * final.c (final_scan_insn): Use expanded_location. gcc/cp: * decl.c (finish_function): Put return's location on line zero of file. gcc/fortran: * scanner.c (get_file): Update. (load_file): Update. (gfc_next_char_literal): Use gfc_linebuf_linenum. * f95-lang.c (gfc_init): Update. * gfortran.h (gfc_linebuf_linenum): New macro. gcc/java: * lang.c (java_post_options): Update. * jcf-parse.c (set_source_filename): Update. (give_name_to_class): Update. (jcf_parse): Update. (duplicate_class_warning): Update. (parse_class_file): Update. (java_parse_file): Update. * expr.c (expand_byte_code): Update. gcc/testsuite: * lib/g++.exp (g++_target_compile): Use -fno-show-column. gcc/treelang: * tree1.c (treelang_init): Update. (treelang_parse_file): Update. (treelang_parse_file): Update. (treelang_parse_file): Update. * lex.l: Update. (update_lineno_charno): Likewise. libcpp: * internal.h (struct cpp_reader) <invocation_location>: New field. (struct cpp_reader) <set_invocation_location>: Likewise. * init.c (cpp_set_line_map): New function. * line-map.c (linemap_add): Use linemap's allocator. * include/line-map.h (GTY): Define. (line_map_realloc): New typedef. (struct line_map): Mark with GTY. (struct line_maps): Likewise. (struct line_maps) <maps>: Likewise. (struct line_maps) <reallocator>: New field. * include/symtab.h (GTY): Conditionally define. * include/cpplib.h (cpp_set_line_map): Declare. (cpp_get_token_with_location): Declare. * macro.c (cpp_get_token): Set invocation_location on the reader. (cpp_get_token_with_location): New function. From-SVN: r128190
2007-09-05re PR c++/15745 (exception specification incorrectly changes the type of the ↵Jason Merrill2-0/+6
exception thrown) PR c++/15745 * except.c (prepare_eh_type): Use type_decays_to. From-SVN: r128174
2007-09-05re PR c++/15097 (code generator problem with ::delete and multiple ↵Jason Merrill4-3/+20
inheritance and virtual deconstructs) PR c++/15097 * init.c (build_delete): Use build_headof to get the address of the complete object if we aren't using the deleting destructor. * rtti.c (build_headof): No longer static. * cp-tree.h: Declare it. From-SVN: r128172
2007-09-06re PR c++/33289 (__sprintf_chk etc. not DECL_ANTICIPATED)Jakub Jelinek2-0/+15
PR c++/33289 * decl.c (builtin_function_1): Set DECL_ANTICIPATED also on __*_chk non-__builtin_* decls. * g++.dg/eh/builtin4.C: New test. From-SVN: r128160
2007-09-06decl.c (duplicate_decls): Set TREE_NOTHROW on __builtin_XX decl if a ↵Jakub Jelinek2-0/+16
prototype for XX is provided with... * decl.c (duplicate_decls): Set TREE_NOTHROW on __builtin_XX decl if a prototype for XX is provided with throw(). * g++.dg/eh/builtin1.C: New test. * g++.dg/eh/builtin2.C: New test. * g++.dg/eh/builtin3.C: New test. From-SVN: r128159
2007-09-05Move ChangeLog entry to correct ChangeLog file.Jakub Jelinek1-0/+5
From-SVN: r128151
2007-09-05re PR c++/30302 (ICE with invalid member in anonymous struct)Paolo Carlini3-5/+28
/cp 2007-09-03 Paolo Carlini <pcarlini@suse.de> PR c++/30302 * semantics.c (finish_id_expression): Check that path != NULL_TREE before using TYPE_BINFO on it. * class.c (finish_struct_anon): Deal correctly with anonymous structs (vs unions, as GNU extension) in error messages. /testsuite 2007-09-03 Paolo Carlini <pcarlini@suse.de> PR c++/30302 * g++.dg/ext/anon-struct5.C: New. From-SVN: r128145
2007-09-05fix changelog entryJason Merrill1-1/+1
From-SVN: r128144
2007-09-05Add target hook invoked when cfun changes.Sandra Loosemore2-2/+2
2007-09-05 Sandra Loosemore <sandra@codesourcery.com> gcc/ Add target hook invoked when cfun changes. * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document. * target.h (struct gcc_target): Add set_current_function. * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define. (TARGET_INITIALIZER): Add initializer for set_current_function. * tree.h (push_struct_function): New. * tree-inline.h (push_cfun, pop_cfun): Move declarations to... * function.h: Here. (set_cfun): Declare. * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to... * function.c: Here. (push_function_context_to): Use allocate_struct_function to create null context, not init_dummy_function_start. Use set_cfun. (pop_function_context_from): Use set_cfun. (in_dummy_function): New. (invoke_set_current_function_hook): New. (set_cfun): New. (push_cfun, pop_cfun): Use set_cfun. (push_struct_function): New. (allocate_struct_function): Call invoke_set_current_function_hook before returning. (prepare_function_start): Don't set cfun here. Remove unused argument; fix all callers. (init_dummy_function_start): Fiddle with in_dummy_function. Call push_struct_function. (init_function_start): Set cfun here. (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun. * omp-low.c (create_omp_child_function): Use push_struct_function and pop_cfun to save/restore state. (expand_omp_parallel): Remove unused saved_cfun variable. * cgraphunit.c (ipa_passes): Use set_cfun. * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here. * dwarf2out.c (dwarf2out_abstract_function): Likewise. * matrix-reorg.c (transform_allocation_sites): Likewise. (matrix_reorg): Use set_cfun. * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here. * tree-optimize.c (tree_rest_of_compilation): Remove one redundant assignment to cfun; use set_cfun for the other. * tree-cfg.c (move_sese_region_to_fn): Use set_cfun. (dump_function_to_file): Use push_cfun/pop_cfun here. * c-decl.c (finish_function): Use set_cfun. gcc/ada/ * trans.c (Compilation_unit_to_gnu): Use set_cfun. * utils.c (end_subprog_body): Likewise. gcc/cp/ * decl.c (finish_function): Use set_cfun. * method.c (use_thunk): Likewise. gcc/fortran/ * trans-decl.c (build_entry_thunks): Use set_cfun. (gfc_generate_function_code): Likewise. gcc/java/ * decl.c (finish_method): Use set_cfun. gcc/treelang/ * treetree.c (tree_code_create_function_wrapup): Use set_cfun. From-SVN: r128132