aboutsummaryrefslogtreecommitdiff
path: root/gcc/objc
AgeCommit message (Collapse)AuthorFilesLines
2004-02-10objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS' boundaries outside ↵Ziemowit Laski1-1/+2
build_component_ref() call (a macro... 2004-02-09 Ziemowit Laski <zlaski@apple.com> * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS' boundaries outside build_component_ref() call (a macro in ObjC++). From-SVN: r77584
2004-02-06[gcc/ChangeLog]Ziemowit Laski1-0/+12
2004-02-06 Ziemowit Laski <zlaski@apple.com> * objc/objc-act.c (build_super_template) the 'class' field of 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS. (get_super_receiver): Likewise. [gcc/libobjc/ChangeLog] 2004-02-06 Ziemowit Laski <zlaski@apple.com> * objc/objc-api.h (objc_super): The 'class' field shall be named 'super_class' #ifdef __cplusplus. From-SVN: r77430
2004-02-06Makefile.in (srcextra): Add a level of indirection to ...Kelley Cook1-2/+0
2004-02-05 Kelley Cook <kcook@gcc.gnu.org> PR/13485 Makefile.in (srcextra): Add a level of indirection to ... (gcc.srcextra): ... here. (po-generated): Delete. (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on options.c. (start.encap): Remove superfluous lang.srcextra dependency. objc/Make-lang.in (po-generated): Delete. From-SVN: r77363
2004-02-03re PR c/11658 (Wrong error message)Paolo Bonzini3-7/+9
2004-02-03 Paolo Bonzini <bonzini@gnu.org> PR c/11658 PR c/13994 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend on langhooks.h. * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h. * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c: Include langhooks.h. Replace c_common_truthvalue_conversion with the truthvalue_conversion language hook throughout. (expr_no_commas): Call default_conversion before save_expr for the first term of the production 'x ? : y'. * c-common.c (c_common_truthvalue_conversion): Remove obsolete block. Invoke recursively the hook instead of this function. * c-convert.c (convert): handle ERROR_MARK_NODE. * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE returned by the truthvalue_conversion language hook. * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use c_objc_common_truthvalue_conversion. * c-objc-common.c (c_objc_common_truthvalue_conversion): New function. * c-tree.h (c_objc_common_truthvalue_conversion): Declare it. * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use c_objc_common_truthvalue_conversion. From-SVN: r77168
2004-01-21re PR other/12730 (manual page install broken with old Pod::man)Kelley Cook1-0/+4
gcc/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> PR bootstrap/12730 * configure.ac: Delete definition and subsitution of docdir. Add info, man, srcman and srcinfo to target hooks. Create doc/ directory. * configure: Regenerate. * Makefile.in: Don't substitute docdir and delete all references throughout. (MAKEINFOFLAGS): Define. (stmp-docobjdir): Delete. (INFOFILES, MANFILES): Define. (info): Call lang.info, srcinfo and lang.srcinfo. (generated-manpages): Call lang.man, srcman and lang.srcman. (srcinfo, srcman): New rules to copy back files to source directory. (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule. (install-man): Revamp rule. (clean): Update dvi directory. (distclean): Delete TAGS from front end directorys. (maintainer-clean): Delete all document files in source directory. objc/Make-lang.in (objc.man, objc.info): Dummy entries. (objc.srcman, objc.srcinfo): Likewise. gcc/ada/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update to use consistent MAKEINFO rule. (ada.man, ada.srcman): Dummy entry. (ADA_INFOFILES): Define. (ada.info, ada.srcinfo): New rules. gcc/cp/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (c++.info, c++.srcinfo): Dummy entry. (c++.man, c++.srcman): New rules. (c++.install-man): Revamp rule. gcc/f/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (TEXI_G77_FILES): Define. (f77.rebuilt): Delete. (f77.srcextra): Add dependencies on f/BUGS and f/NEWS. (f77.srcman, f77.srcinfo, f77.man, f77.info): New rules. (doc/g77.info, doc/g77.dvi): Depend on TEXI_G77_FILES. Always build in doc directory. Use $(MAKEINFOFLAGS). (info, dvi, generated_manpages): Update to look in doc directory. (f/BUGS, f/NEWS): Generate in build directory. (f77.mostlyclean): Delete BUGS and NEWS from build directory. (f77.maintainer-clean): Adjust to delete from source directory. (f77.install-man): Revamp rule. gcc/java/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (java.info, java.srcinfo, java.man, java.srcman): New rules. (java.install-man): Revamp rule. gcc/treelang/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (treelang.info, treelang.srcinfo): New rules. (treelang.man, treelang.man): Dummy entries. maintainer-scripts/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * gcc_release (build_sources): Delete call to make f77.rebuilt. From-SVN: r76249
2004-01-18objc-act.c (build_objc_method_call): Use target hooks instead of macros to ↵Ziemowit Laski1-8/+5
determine if... [gcc/ChangeLog] 2004-01-17 Ziemowit Laski <zlaski@apple.com> * objc/objc-act.c (build_objc_method_call): Use target hooks instead of macros to determine if ..._stret dispatchers should be used (NeXT runtime only). [gcc/testsuite/ChangeLog] 2004-01-17 Ziemowit Laski <zlaski@apple.com> * objc.dg/stret-1.m: New. * objc.dg/stret-2.m: New. From-SVN: r76072
2004-01-15re PR bootstrap/12744 (A GCC release tarball can no longer be built without ↵Kelley Cook1-20/+14
bison/flex) gcc/ 2004-01-15 Kelley Cook <kcook@gcc.gnu.org> PR bootstrap/12744 * configure.in: Revamp enable-generated-files-in-srcdir rule to define GENINSRC and not parsedir. Define srcextra as a langhook. * configure: Regenerate. * Makefile.in: Suppress default .l.c rule. Don't substitute parsedir and delete all references throughout. Conditionally define rule for srcextra dependent on GENINSRC. (stmp-docobjdir): Delete. (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule. (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c, and gengtype-yacc.h back to source directory. (maintainer-clean): Delete all parse files in source directory. (distclean): Delete generated files. * objc/Make-lang.in (objc-parse.o): Use implicit build rule. (objc-parse.c, objc-parse.y): Don't use parsedir. (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source directory if requested. (po-generated): Don't use parsedir. (objc.maintainer-clean): Delete above files from source directory. gcc/ada/ 2004-01-15 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in (ada.srcextra): Dummy entry. gcc/cp/ 2004-01-15 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in (c++.srcextra): Dummy entry. gcc/f/ 2004-01-15 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in (f77.srcextra): Dummy entry. gcc/java/ 2004-01-15 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory. (java.srcextra): Copy above back to source directory if requested. (po-generated): Delete reference to $(parsedir). (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir). Use implicit rule. gcc/treelang/ 2004-01-15 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in (TREE_GENERATED): Delete reference to $(parsedir). (treelang/parse.o, treelang/lex.o): Look for sources in build directory. Use implicit rule. (treelang/parse.c, treelang/parse.h treelang/lex.c): Always build in doc directory. (treelang.srcextra): Copy above back to source directory if requested. From-SVN: r75903
2003-12-13ggc-zone.c: Follow spelling conventions.Kazu Hirata1-1/+1
* ggc-zone.c: Follow spelling conventions. * config/rs6000/rs6000.c: Likewise. * pt.c: Likewise. * semantics.c: Likewise. * objc/objc-act.c: Likewise. From-SVN: r74590
2003-11-20Makefile.in (extraclean): Delete.Joseph Myers1-2/+1
gcc: * Makefile.in (extraclean): Delete. * configure.in (target_list): Remove extraclean. * configure: Regenerate. * doc/makefile.texi, doc/sourcebuild.texi: Update. * objc/Make-lang.in (objc.extraclean): Delete. gcc/ada: * Make-lang.in (ada.extraclean): Delete. gcc/cp: * Make-lang.in (c++.extraclean): Delete. gcc/f: * Make-lang.in (f77.extraclean): Delete. gcc/java: * Make-lang.in (java.extraclean): Delete. gcc/treelang: * Make-lang.in (treelang.extraclean): Delete. From-SVN: r73759
2003-11-20Makefile.in (lang_checks): Add.Joseph Myers1-0/+2
gcc: * Makefile.in (lang_checks): Add. (check-c++, check-f77, check-java, check-g++, check-g77, check-objc): Remove hardcoded targets. * doc/sourcebuild.texi: Document testsuite hooks. * objc/Make-lang.in (check-objc, lang_checks): Add. gcc/cp: * Make-lang.in (check-g++, lang_checks): Add. gcc/f: * Make-lang.in (check-f77, lang_checks): Add. gcc/java: * Make-lang.in (check-java): Add. gcc/treelang: * Make-lang.in: Remove obsolete comment. From-SVN: r73758
2003-11-16Makefile.in, [...]: Create TAGS.sub files in each directory and TAGS files ↵Jason Merrill1-1/+2
that include them for... * Makefile.in, objc/Make-lang.in, ada/Make-lang.in, cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in: Create TAGS.sub files in each directory and TAGS files that include them for each front end. From-SVN: r73643
2003-11-02cvsignore: Remove c-parse.* and tradcif.cKelley Cook1-2/+0
* .cvsignore: Remove c-parse.* and tradcif.c * objc/.cvsignore: Delete. * java/.cvsignore: Delete. From-SVN: r73186
2003-10-23Makefile.in (runtime-info.h): Remove -Wp.Rainer Orth1-5/+5
libobjc: * Makefile.in (runtime-info.h): Remove -Wp. gcc: * objc/lang-specs.h: Handle -print-objc-runtime-info. * doc/invoke.texi (Objective-C Dialect Options): Document it. From-SVN: r72870
2003-10-20Makefile.in (install-info): Simplify.Mark Mitchell1-3/+1
* Makefile.in (install-info): Simplify. ($(DESTDIR)$(infodir)/%.info): New rule. * configure.in (target_list): Remove install-info. * doc/.cvsignore (gcc.info*): Remove. (gccint.info*): Likewise. (gccinstall.info*): Likewise. (cpp.info*): Likewise. (cppinternals.info*): Likewise. (*.info*): Add it. * doc/sourcebuild.texi: Update description of install-info. * objc/Make-lang.in (objc.install-info): Remove. 2003-10-20 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (ada.install-info): Remove target. (info): New target. (install-info): Likewise. (gnat_ug_unx.info): Simplify rule. (gnat_ug_vmx.info): Likewise. (gnat_ug_vxw.info): Likewise. (gnat_ug_wnt.info): Likewise. (gnat_rm.info): Likewise. (gnat-style.info): Likewise. 2003-10-20 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (c++.install-info): Remove. Mon Oct 20 13:49:43 2003 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (.PHONY): Remove f77.info, f77.install-info. (info): Update dependencies. ($(srcdir)/f/g77.info): Replace with ... ($(docobjdir)/g77.info): ... this. (f77.install-info): Remove. (install-info): New target. 2003-10-20 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (info): Update dependencies. (java.install-info): Remove. ($(srcdir)/java/gcj.info): Replace with ... ($(docobjdir)/gcj.info): ... this. 2003-10-20 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (info): Use docobjdir. ($(srcdir)/treelang/treelang.info): Replace with ... ($(docobjdir)/treelang/treelang.info): ... this. (install-info): New target. From-SVN: r72718
2003-10-16* objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c.R. Kelley Cook1-0/+2
From-SVN: r72581
2003-10-15c-parse.in (methoddef, [...]): Call objc_add_method() instead of add_method().Ziemowit Laski2-7/+6
2003-10-14 Ziemowit Laski <zlaski@apple.com> * c-parse.in (methoddef, methodproto): Call objc_add_method() instead of add_method(). * objc/objc-act.c (objc_check_decl): Do not check for constant_string_type. (add_method): Rename to objc_add_method(). (really_start_method): Call objc_add_method() instead of add_method(). * objc/objc-act.h (add_method): Rename to objc_add_method(). From-SVN: r72506
2003-10-06re PR bootstrap/12512 (Pattern rule for %.dvi breaks make dvi in objc)Mark Mitchell1-5/+0
PR bootstrap/12512 * Makefile.in (info): Use double-colon rules. (dvi): Likewise. (generated-manpages): Likewise. * configure.in: Do not create lang.info, lang.dvi, or lang.generated-manpages hooks. * configure: Regenerated. * objc/Make-lang.in (objc.info): Remove. (objc.dvi): Remove. (objc.generated-manpages): Remove. * doc/sourcebuild.texi: Update description of info, dvi, and generated-manpages hooks. * Make-lang.in (ada.info): Replace with ... (info): ... this. (ada.dvi): Replace with ... (dvi): ... this. * Make-lang.in (c++.info): Remove. (c++.dvi): Remove. (c++.generated-manpages): Replace with ... (generated-manpages): ... this. * Make-lang.in (f77.info): Replace with ... (info): ... this. (f77.dvi): Replace with ... (dvi): ... this. (f77.generated-manpages): Replace with ... (generated-manpages): ... this. * Make-lang.in (java.info): Replace with ... (info): ... this. (java.dvi): Replace with ... (dvi): ... this. (java.generated-manpages): Replace with ... * Make-lang.in (treelang.info): Replace with ... (info): ... this. * Make-lang.in (treelang.dvi): Replace with ... (dvi): ... this. From-SVN: r72135
2003-10-03objc-act.c (lookup_category): Mark as 'inline'.Ziemowit Laski1-2/+2
2003-10-03 Ziemowit Laski <zlaski@apple.com> * objc/objc-act.c (lookup_category): Mark as 'inline'. From-SVN: r72081
2003-10-03objc-act.c (add_method_to_hash_list, [...]): New functions.Alexander Malmberg1-73/+131
[gcc] 2003-10-03 Alexander Malmberg <alexander@malmberg.org> Ziemowit Laski <zlaski@apple.com> * objc/objc-act.c (add_method_to_hash_list, lookup_category): New functions. (lookup_method_in_hash_lists): New parameter indicating whether we are messaging 'Class' or 'id'. (check_duplicates): Likewise; do not assume all methods will be either class or instance methods. (generate_category, finish_class): Use lookup_category(). (add_method): Use add_method_to_hash_list(); insert instance methods of root classes into the global class method hash table. (add_category): Use lookup_category(); avoid constructing duplicate categories. (really_start_method): Add method to corresponding @interface, if not already there (and if the @interface exists). (finish_message_expr, finish_objc): Adjust calls to check_duplicates(). [gcc/testsuite] 2003-10-03 Alexander Malmberg <alexander@malmberg.org> Ziemowit Laski <zlaski@apple.com> * objc.dg/method-6.m ('starboard'): Move prototype from 'Base' to 'Derived', so that it is never considered a class method; add new warning for '+port' method ambiguity. * objc.dg/method-12.m: Include <objc/objc.h> instead of <objc/objc-api.h> (needed on Mac OS X). * objc.dg/method-13.m: New test. Co-Authored-By: Ziemowit Laski <zlaski@apple.com> From-SVN: r72080
2003-09-30Convert to ISO C90 prototypes.Kelley Cook1-3/+2
From-SVN: r71957
2003-09-29objc-act.c (encode_type): Encode INTEGER_TYPEs and REAL_TYPEs based on the ↵Zack Weinberg1-42/+22
bitsize of the type's mode... * objc/objc-act.c (encode_type): Encode INTEGER_TYPEs and REAL_TYPEs based on the bitsize of the type's mode, not the mode directly. From-SVN: r71923
2003-09-26objc-act.c (tm_p.h): Tweak order.Loren J. Rittle1-4/+4
* objc/objc-act.c (tm_p.h): Tweak order. * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H). From-SVN: r71844
2003-09-26* objc/objc-act.c (tm_p.h): Tweak order.Loren J. Rittle1-1/+1
From-SVN: r71843
2003-09-26i386.h (ix86_return_in_memory): Revert my last patch.Loren J. Rittle1-0/+1
* config/i386/i386.h (ix86_return_in_memory): Revert my last patch. * objc/objc-act.c (tm_p.h): Include. From-SVN: r71834
2003-09-25* objc/objc-act.c (gen_declaration_1): Fix printf format.Ulrich Weigand1-1/+2
From-SVN: r71783
2003-09-25MERGE OF objc-improvements-branch into MAINLINE.Ziemowit Laski5-1214/+2110
2003-09-24 Ziemowit Laski <zlaski@apple.com> MERGE OF objc-improvements-branch into MAINLINE. See 'gcc/ChangeLog' and 'gcc/testsuite/ChangeLog' for the gory details. From-SVN: r71748
2003-09-21Revert DECL_SOURCE_LOCATION -> TREE_LOCUS change.Richard Henderson1-5/+7
From-SVN: r71641
2003-09-21tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.Richard Henderson1-7/+5
* tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const. (TREE_FILENAME, TREE_LINENO): Likewise. (set_tree_locus, copy_tree_locus, set_tree_file_line): New. (TREE_LOCUS_SET_P): New. * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match. ada/ * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and change to const. cp/ * class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c, method.c, optimize.c, pt.c, semantics.c, tree.c: Update for DECL_SOURCE_LOCATION rename and change to const. f/ * com.c, ste.c: Update for DECL_SOURCE_LOCATION rename and change to const. java/ * class.c, decl.c, jcf-parse.c, jcf-write.c, parse.y, resource.c: Update for DECL_SOURCE_LOCATION rename and change to const. treelang/ * treetree.c: Update for DECL_SOURCE_LOCATION rename and change to const. From-SVN: r71636
2003-09-20c-format.c (gcc_diag_char_table): Add %J.Richard Henderson1-12/+7
* c-format.c (gcc_diag_char_table): Add %J. (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise. (check_format_types): Fix wanted_type name lookup. (init_dynamic_diag_info): Setup %J. * diagnostic.c (text_specifies_location): Implement %J. * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c, dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c, tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c, config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics. * tree-inline.c: Include intl.h (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason. * Makefile.in (tree-inline.o): Update. cp/ * decl.c, decl2.c, pt.c: Use %J in diagnostics. java/ * check-init.c, class.c, decl.c, expr.c: Use %J in diagnostics. testsuite/ * gcc.dg/format/gcc_diag-1.c: Add tests for %J. From-SVN: r71619
2003-09-14objc-act.c: Convert to ISO C90 prototypes.Andreas Jaeger2-714/+462
* objc/objc-act.c: Convert to ISO C90 prototypes. * objc/objc-act.h: Likewise. From-SVN: r71371
2003-09-04cgraph.c (cgraph_mark_reachable_node): Split out from ...Richard Henderson1-2/+3
* cgraph.c (cgraph_mark_reachable_node): Split out from ... (cgraph_mark_needed_node): Remove needed argument. * cgraph.h: Update to match. * cgraphunit.c (decide_is_function_needed): Split out from ... (cgraph_finalize_function): Reorg. Avoid deferred_inline_function if we generated the function. (record_call_1): Update for cgraph_mark_reachable_node. * varasm.c (mark_referenced): Likewise. * objc/objc-act.c (mark_referenced_methods): Likewise. * decl2.c (mark_member_pointers_and_eh_handlers): Update for change in cgraph_mark_needed_node arguments. From-SVN: r71104
2003-09-03targhooks.c: New file.DJ Delorie1-1/+1
* targhooks.c: New file. * targhooks.h: New file. * Makefile.in: Add targhooks.o support. (function.o): Depend on$(TARGET_H). (stmt.o): Likewise. (combine.o): Depend on $(TREE_H) and $(TARGET_H). * builtins.c (apply_args_size, expand_builtin_apply_args_1, expand_builtin_apply): Convert to calls.struct_value_rtx hook. (expand_builtin_saveregs): Convert to calls.expand_builtin_saveregs hook. * c-decl.c (start_decl): Handle new calls.promote_prototypes hook here, instead of ... (get_parm_info) ... here. (store_parm_decls_oldstyle): Convert to calls.promote_prototypes hook. (finish_function): Handle calls.promote_prototypes hook here too. * c-typeck.c (convert_arguments): Convert to calls.promote_prototypes hook. (c_convert_parm_for_inlining): Likewise. * calls.c (initialize_argument_information): Convert to calls.promote_function_args hook. (expand_call): Convert to calls.struct_value_rtx, calls.strict_argument_naming, calls.pretend_outgoing_varargs_named, and calls.promote_function_return hooks. Pass fndecl to aggregate_value_p. Initialize CUMULATIVE_ARGS before calling hooks, so they can use that. (emit_library_call_value_1): Likewise. * combine.c (setup_incoming_promotions): Convert to calls.promote_function_args hook. * emit-rtl.c: Convert to calls.struct_value_rtx hook. * expr.c (expand_assignment): Pass call to aggregate_value_p. (expand_expr): Likewise. * expr.h: Remove support for SETUP_INCOMING_VARARGS, STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, RETURN_IN_MEMORY macro defaults. * final.c (profile_function): Convert to calls.struct_value_rtx hook. * function.c (aggregate_value_p): Accept function type tree as second parameter; try to deduce fntype from it. Convert to calls.return_in_memory hook. (assign_parms): Convert to calls.setup_incoming_varargs, calls.strict_argument_naming, calls.promote_function_args, calls.pretend_outgoing_varargs_named hooks. Pass fndecl to aggregate_value_p. (expand_function_start): Likewise. Convert to calls.struct_value_rtx hook. (expand_function_end): Convert to calls.promote_function_return hook. (allocate_struct_function): Pass fndecl to aggregate_value_p. * hard-reg-set.h: Update comments to new hook names. * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p. * reg-stack.c (stack_result): Likewise. * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete. * stmt.c (expand_value_return): Convert to calls.promote_function_return hook. * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY, TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS, TARGET_STRICT_ARGUMENT_NAMING, TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS. * target.h: Likewise. * tree.h (aggregate_value_p): Also takes a tree to deduce function attributes from (for target hooks). * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM, STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING, EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS, STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert to hooks. * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function to aggregate_value_p. * config/arm/arm.c (arm_init_cumulative_args, arm_output_mi_thunk): Likewise. * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter): Likewise. * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue, mips_can_use_return_insn): Likewise. * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. * config/s390/s390.c (s390_output_mi_thunk): Likewise. * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to aggregate_value_p. * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass function to aggregate_value_p. * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to aggregate_value_p. * config/sh/sh-protos.h (sh_builtin_saveregs): Remove. (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg, sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c (sh_handle_renesas_attribute, sh_promote_prototypes, sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs, sh_setup_incoming_varargs, sh_strict_argument_naming, sh_pretend_outgoing_varargs_named): New decls. (targetm): Add new hooks. (calc_live_regs): Save MACL and MACH if the function has the renesas attribute. (sh_expand_prologue): Support renesas attribute. (sh_builtin_saveregs): Make static. (sh_build_va_list): Support renesas attribute. (sh_va_start): Likewise. (sh_va_arg): Likewise. (sh_promote_prototypes): New. (sh_function_arg): New, moved from sh.h. Support renesas attribute. (sh_function_arg_advance): Likewise. (sh_return_in_memory): Likewise. (sh_strict_argument_naming): Likewise. (sh_pretend_outgoing_varargs_named): Likewise. (sh_struct_value_rtx): New. (sh_attribute): Add renesas attribute. (sh_handle_renesas_attribute): New. (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New. (sh_ms_bitfield_layout_p): Support renesas attribute also. (sh_output_mi_thunk): Pass function to aggregate_value_p. * config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for -mhitachi. (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to target hooks. (sh_args): Add renesas_abi flag. (INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p. (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c. (PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the stack for the renesas abi. (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS, PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set call cookie to indicate renesas calls. * decl.c (finish_function): Pass fndecl to aggregate_value_p. * misc.c (default_pass_by_ref): Convert to calls.return_in_memory hook. From-SVN: r71048
2003-09-03Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency.Jan Hubicka1-2/+2
* Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency. * c-decl.c (finish_function): Kill arguments, always use cgraph path. * c-objc-common.c: Kill include of gt-c-objc-common.h (expand_deferred_fns, deffer_fn): Kill function. (deferred_fns): Kill variable. (finish_cdtor): Update finish_function call. (c_objc_common_finish_file): Always call cgraph code. * c-parse.c: Regenerate. * c-parse.y: Regenerate. * c-tree.h (finish_function): Update prototype. * objc-acct.c (build_module_descriptor, finish_method_def): Update call of finish_function. * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add forward prototype. (cgraph_finalize_function): In non-unit-at-a-time mode analyze the function and assemble it if needed. (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time mode. (cgraph_optimize): Likewise. (cgraph_expand_function): In non-unit-at-a-time mode keep function body even when it has no inline callees. * c-parse.in: Update calls to finish_function. From-SVN: r71028
2003-08-29tree-optimize.c: New file.Richard Henderson1-0/+3
gcc/ * tree-optimize.c: New file. * Makefile.in (OBJS-archive): Add tree-optimize.o. (tree-optimize.o): New. * c-decl.c (store_parm_decls): Use allocate_struct_function. (finish_function): Don't free_after_parsing or free_after_compilation. (set_save_expr_context): Move to tree-optimize.c. (c_expand_body_1): Use tree_rest_of_compilation. * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines; iterate until closure. * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START, LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New. (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New. * langhooks.h (struct lang_hooks_for_rtl_expansion): New. * toplev.h (tree_rest_of_compilation): Declare it. gcc/cp/ * cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New. (LANG_HOOKS_RTL_EXPAND_STMT): New. * cp-tree.h (cxx_expand_function_start): Declare. * decl.c (start_function): Use allocate_struct_function. Move stmts_are_full_exprs_p assertion from expand_body. Do not free_after_parsing or free_after_compilation. (cxx_push_function_context): Move code to set struct function data from genrtl_start_function. * optimize.c (optimize_function): Don't inc/dec function_depth. * semantics.c (expand_body): Use tree_rest_of_compilation. (cxx_expand_function_start): Rename from genrtl_start_function, omit bits done by tree_rest_of_compilation. (genrtl_finish_function): Remove. (clear_decl_rtl): Move to ../tree-optimize.c. Co-Authored-By: Jason Merrill <jason@redhat.com> From-SVN: r70933
2003-08-20Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ...Matt Kraai1-1/+1
* Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ... * objc/config-lang.in (stagestuff): ... to here. From-SVN: r70596
2003-08-19PR c++/10538, PR c/5582Andrew Pinski1-0/+2
ChangeLog: * langhooks-def.h (lhd_decl_uninit): Declare. (LANG_HOOKS_DECL_UNINIT): New macro. (LANG_HOOKS_INITIALIZER): Adjust. * langhooks.h (struct lang_hooks): Add new field decl_uninit. * langhooks.c (lhd_decl_uninit): Define. * c-common.c (c_decl_uninit_1): New function. (c_decl_uninit): New function. (warn_init_self): Define. * c-common.h (c_decl_uninit): Declare. (warn_init_self): Declare. * c.opt: Introduce -Winit-self. * c-opts.c (c_common_handle_options): Set warn_init_self. * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define. * objc/objc-lang.c (LANG_HOOKS_DECL_UNINIT): Define. * function.c (uninitialized_vars_warning): Call the language hook. * doc/invoke.texi: Document -Winit-self. cp/ChangeLog: * cp/cp-lang.c (LANG_HOOKS_DECL_UNINIT): Define. testsuite: * gcc.dg/uninit-D.c: New Test. * gcc.dg/uninit-E.c: New Test. * gcc.dg/uninit-F.c: New Test. * gcc.dg/uninit-G.c: New Test. From-SVN: r70574
2003-08-04c-common.c (flag_noniso_default_format_attributes): Delete.Roger Sayle1-2/+0
* c-common.c (flag_noniso_default_format_attributes): Delete. (built_in_attribute): Don't define/undefine DEF_FN_ATTR. (c_attrs_initialized): Delete. (c_common_nodes_and_builtins): Don't test c_attrs_initialized, always call c_init_attributes. (c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't set c_attrs_initialized when done. (c_common_insert_default_attributes): Delete. * c-common.h (flag_noniso_default_format_attributes): Delete. (c_coomon_insert_default_attributes): Delete prototype. * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set flag_noniso_default_format_attributes. * c-decl.c (c_insert_default_attributes): Delete. * c-tree.h (c_insert_default_attributes): Delete prototype. * attribs.c (decl_attributes): Don't call insert_default_attributes langhook. Update function description comment. * langhooks.h (lang_hooks): Remove insert_default_attributes field. * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete. * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro. cp/ * decl.c (cxx_insert_default_attributes): Delete. * cp-tree.h (cxx_insert_default_attributes): Don't prototype. * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. objc/ * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. From-SVN: r70155
2003-07-31* objc/Make-lang.in (objc.stage1, objc.stage2, objc.stage3)Matt Kraai1-6/+0
(objc.stage4, objc.stageprofile, objc.stagefeedback): Remove moves of cc1obj. From-SVN: r69987
2003-07-25objc-act.c (objc_check_decl): Don't use xxx_with_decl.Gabriel Dos Reis1-3/+6
* objc/objc-act.c (objc_check_decl): Don't use xxx_with_decl. (objc_declare_class): Likewise. (error_with_ivar): Likewise. (start_class): Likewise. (warn_with_method): Likewise. java/ * expr.c (expand_java_field_op): Don't use xxx_with_decl (expand_java_field_op): Likewise. * class.c (layout_class_method): Likewise (emit_register_classes): Likewise. * decl.c (pushdecl): Likewise. (poplevel): Likewise. (force_poplevels): Likewise. (give_name_to_locals): Likewise. * check-init.c (check_for_initialization): Likewise. From-SVN: r69780
2003-07-19fixfixes.c [...]: Remove unnecessary casts.Kaveh R. Ghazi1-21/+18
gcc: * fixinc/fixfixes.c fixinc/fixincl.c fixinc/fixlib.c fixinc/server.c objc/objc-act.c: Remove unnecessary casts. f: * com.c data.c expr.c fini.c g77spec.c global.c lab.c lex.c name.c sta.c stc.c std.c storag.c stt.c stw.c symbol.c target.c type.c: Remove unnecessary casts. cp: * call.c class.c decl.c decl2.c g++spec.c lex.c parser.c pt.c rtti.c semantics.c typeck.c: Remove unnecessary casts. java: * class.c java-tree.h jcf-write.c jvspec.c: Remove unnecessary casts. treelang: * treetree.c: Remove unnecessary casts. From-SVN: r69593
2003-07-17re PR middle-end/11498 (asm can't be used to give a variable its own name)Geoffrey Keating1-0/+2
PR 11498 * Makefile.in (c-opts.o): Add $(LANGHOOKS_DEF_H). (langhooks.o): Add $(GGC_H), gt-langhooks.h. (GTFILES): Add langhooks.c. (gt-langhooks.h): New. * c-common.h (c_static_assembler_name): Prototype. * c-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. * objc/objc-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. * c-opts.c: Include langhooks-def.h. (c_static_assembler_name): New. * langhooks.c: Include ggc.h. Include gt-langhooks.h. (var_labelno): New. (lhd_set_decl_assembler_name): Give static objects with context unique names. * varasm.c (var_labelno): Delete. (make_decl_rtl): Don't change the assembler name once it's set. From-SVN: r69527
2003-07-17objc-lang.c: Override LANG_HOOKS_WRITE_GLOBALS to c_write_global_declarations.Zack Weinberg1-0/+3
* objc/objc-lang.c: Override LANG_HOOKS_WRITE_GLOBALS to c_write_global_declarations. From-SVN: r69525
2003-07-17Missed this hunk - belongs with the previous patchZack Weinberg1-1/+2
From-SVN: r69521
2003-07-17c-decl.c: Fix typos in several comments.Zack Weinberg1-7/+9
* c-decl.c: Fix typos in several comments. Remove all #if 0 blocks; reindent as needed. Remove unused argument to declare_parm_level; all callers changed. * c-parse.in: Update calls to declare_parm_level. Avoid issuing a double warning in some circumstances. * c-typeck.c: Update calls to declare_parm_level. * c-tree.h: Update prototype of declare_parm_level. * c-pragma.c (apply_pragma_weak): Don't complain about a redundant #pragma weak. * objc/objc-act.c (forward_declare_categories, build_selector_reference_decl, build_class_reference_decl, build_objc_string_decl, synth_forward_declarations, build_protocol_reference): Set TREE_PUBLIC on synthetic forward decl to 0, consistent with eventual definition. Correct comments to match. cp: * pt.c (get_bindings): Make definition consistent with forward declaration. From-SVN: r69519
2003-07-17c.opt: Document Uncodumented; use it.Neil Booth1-43/+0
* c.opt: Document Uncodumented; use it. Document ObjC options. * opts.c (print_filtered_help): Skip undocumented switches. * opts.h (CL_UNDOCUMENTED): New. * opts.sh: Handle Undocumented. * toplev.c (documented_lang_options): Prevent its becoming empty. f: * lang-options.h: Remove. * lang.opt: Document most options. objc: * lang-options.h: Remove. From-SVN: r69494
2003-07-14objc-act.h (CLASS_SUPER_NAME): Add a little typechecking.Geoffrey Keating2-4/+8
* objc/objc-act.h (CLASS_SUPER_NAME): Add a little typechecking. (TYPE_PROTOCOL_LIST): Share use of type.context with C frontend. (SET_TYPE_PROTOCOL_LIST): New. * objc/objc-act.c (get_static_reference): Use SET_TYPE_PROTOCOL_LIST. (get_object_reference): Likewise. From-SVN: r69364
2003-07-11Index: ChangeLogGeoffrey Keating1-4/+5
2003-07-10 Geoffrey Keating <geoffk@apple.com> * c-decl.c (finish_decl): Handle 'used' here... * cgraphunit.c (cgraph_finalize_function): ... and here ... * c-common.c: (handle_used_attribute): ... not here. * configure.in (onstep): Support --enable-intermodule. * Makefile.in (OBJS-common): New. (OBJS-md): New. (OBJS-archive): New. (OBJS): Build from OBJS-common, OBJS-md, OBJS-archive. (OBJS-onestep): New. (libbackend.a): Support @onestep@. (libbackend.o): New. * configure: Regenerate. * c-common.h (c_reset_state): New prototype. (c_parse_file): New prototype. (finish_file): Move prototype from c-tree.h. * c-decl.c: Include <hashtab.h>. (builtin_decls): New. (current_file_decl): New. (duplicate_decls): Add extra parameter. Change all callers. Don't output duplicate common symbols. (link_hash_hash): New. (link_hash_eq): New. (poplevel): Handle popping of the top level. (warn_if_shadowing): Handle TRANSLATION_UNIT_DECL. (pushdecl): Set DECL_CONTEXT to TRANSLATION_UNIT_DECL if appropriate. (pushdecl_top_level): Likewise. (redeclaration_error_message): Handle TRANSLATION_UNIT_DECL. (c_init_decl_processing): Create TRANSLATION_UNIT_DECL. (finish_decl): Handle TRANSLATION_UNIT_DECL. (merge_translation_unit_decls): New. (c_write_global_declarations): New. (c_reset_state): New. (implicitly_declare): Handle TRANSLATION_UNIT_DECL. * c-lang.c (LANG_HOOKS_WRITE_GLOBALS): New. * c-objc-common.c (c_cannot_inline_tree_fn): Handle TRANSLATION_UNIT_DECL. (c_objc_common_finish_file): Call merge_translation_unit_decls. * c-opts.c (in_fnames): Rename from in_fname. (c_common_decode_option): Handle multiple input filenames. (c_common_post_options): Likewise. (c_common_parse_file): Likewise; also, call c_parse_file rather than yyparse. * c-parse.in: Move cleanup code to c_parse_file. (free_parser_stacks): Move contents to c_parse_file. (c_parse_file): New. * c-tree.h (union lang_tree_node): Chain along TYPE_NEXT_VARIANT for integer types. (C_DECL_FILE_SCOPE): New. (finish_file): Move prototype to c-common.h. (merge_translation_unit_decls): New prototype. (comptypes): Add extra parameter to prototype. (c_write_global_declarations): New prototype. * c-typeck.c (tagged_types_tu_compatible_p): New. (function_types_compatible_p): Add extra parameter, change all callers. (type_lists_compatible_p): Likewise. (comptypes): Likewise. (struct tagged_tu_seen): New. (tagged_tu_seen_base): New. (build_unary_op): Handle TRANSLATION_UNIT_DECL. (c_mark_addressable): Remove #if 0 code. * calls.c (special_function_p): Handle TRANSLATION_UNIT_DECL, add comment explaining why it shouldn't have to. * cgraph.h (struct cgraph_node): Add chain_next and chain_prev GTY options. * cppinit.c (cpp_read_next_file): New. (cpp_read_main_file): Use it. * cpplib.c (undefine_macros): New. (cpp_undef_all): New. * cpplib.h (cpp_read_next_file): Prototype. (cpp_undef_all): Prototype. * langhooks-def.h (write_global_declarations): Remove prototype. * toplev.h (write_global_declarations): Add prototype. * tree.c (decl_type_context): Use switch statement, handle TRANSLATION_UNIT_DECL. * tree.def: Update documentation for TRANSLATION_UNIT_DECL. (TRANSLATION_UNIT_DECL): New kind of tree. * tree.h: Update documentation for TRANSLATION_UNIT_DECL. * Makefile.in (c-decl.o): Add $(HASHTAB_H) to dependencies. * doc/invoke.texi: Make attempt to document new functionality. 2003-05-19 Per Bothner <bothner@apple.com> * gcc.c (combine_inputs): New. (process_command): Set combine_inputs. (do_spec_1): Handle combine_inputs. (main): Likewise. Index: cp/ChangeLog 2003-07-10 Geoffrey Keating <geoffk@apple.com> * decl.c (cp_finish_decl): Handle 'used' attribute. * cp-lang.c (c_reset_state): New dummy routine. * cp-tree.h (finish_file): Move prototype to c-common.h. * parser.c (c_parse_file): Rename from yyparse; don't call finish_file. From-SVN: r69224
2003-07-09* objc-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New.Jan Hubicka1-0/+2
From-SVN: r69144
2003-07-06c-common.h (c_comon_handle_filename, [...]): New.Neil Booth1-0/+4
* c-common.h (c_comon_handle_filename, c_common_missing_arguement): New. * c-lang.c (LANG_HOOKS_HANDLE_FILENAME, LANG_HOOKS_MISSING_ARGUMENT): New. * c-opts.c (missing_arg): Rename c_common_missing_argument, update to be an appropriate langhook. (c_common_handle_option): Don't handle filenames. (c_common_handle_filename): New. * hooks.c (hook_void_constcharptr, hook_bool_constcharptr_size_t_false): New. * hooks.h (hook_void_constcharptr, hook_bool_constcharptr_size_t_false): New. * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME, LANG_HOOKS_MISSING_ARGUMENT): New. (LANG_HOOKS_INITIALIZER): Update. * langhooks.h (struct lang_hooks): Add handle_filename and missing_argument. * opts.c (handle_option): Don't handle filenames here, but ... (handle_options): ... here. (common_handle_option): Don't handle missing arguments here. * objc/objc-lang.c (LANG_HOOKS_HANDLE_FILENAME, LANG_HOOKS_MISSING_ARGUMENT): New. ada: * misc.c (gnat_handle_option): Don't handle filenames. cp: * cp-lang.c (LANG_HOOKS_HANDLE_FILENAME, LANG_HOOKS_MISSING_ARGUMENT): Override. f: * top.c (ffe_handle_option): Don't handle filenames. java: * lang.c (java_handle_option): Don't handle filenames. From-SVN: r69011
2003-07-05cpplib.h (CPP_AT_NAME, [...]): New token types.Zack Weinberg1-21/+5
* cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. (struct cpp_options): Add narrow_charset, wide_charset, bytes_big_endian fields. Remove EBCDIC field. (cpp_init_iconv, cpp_interpret_string): New external interfaces. * cpphash.h: Include <iconv.h> if we have it, otherwise provide a dummy definition of iconv_t. (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. (_cpp_valid_ucn): Update prototype. (_cpp_destroy_iconv): New prototype. * doc/cpp.texi: Document character set handling. * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. * doc/extend.texi: Delete entire section on multiline strings. Rewrite section on __FUNCTION__ etc now that these are variables in C. * cppucnid.tab, cppucnid.pl: New files. * cppucnid.h: New generated file. * cppcharset.c: Include cppucnid.h. Lots of commentary added. (iconv_open, iconv, iconv_close): Provide dummy definitions if !HAVE_ICONV. (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, emit_numeric_escape, convert_hex, convert_oct, convert_escape, cpp_interpret_string, narrow_str_to_charconst, wide_str_to_charconst): New. (ucn_valid_in_identifier): Use a binary search through the ucnranges table defined in cppucnid.h, not a long chain of if statements. (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal character names are only valid in C++ and C99" to a warning. Issue the "meaning of \[uU] is different in traditional C" warning here. Take care not to let iconv see an invalid UCS value if we get a malformed UCN. Issue an error if we don't have iconv. (cpp_interpret_charconst): Moved here from cpplex.c. Use cpp_interpret_string to do the heavy lifting. * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, narrow_charset, wide_charset fields of options structure. (cpp_destroy): Call _cpp_destroy_iconv. * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. (cpp_interpret_charconst): Moved to cppcharset.c. * cpplib.c (dequote_string): Delete. (interpret_string_notranslate): New. (do_line, do_linemarker): Use interpret_string_notranslate. * Makefile.in (cppcharset.o): Depend on cppucnid.h. * c-common.c (fname_string, combine_strings): Delete. * c-common.h (fname_string, combine_strings): Delete prototypes. * c-lex.c (ignore_escape_flag): Delete. (cb_ident): Use cpp_interpret_string, not lex_string. (get_nonpadding_token): New function. (c_lex): Handle Objective-C @-prefixed identifiers and strings here. Adjust calls to lex_string. Don't write *value twice. (lex_string): Now handles string constant concatenation. Most of the work handed off to cpp_interpret_string. Call fix_string_type here. * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with FUNC_NAME, throughout. (OBJC_STRING): New token type. (primary:STRING): No need to call fix_string_type here. (primary:objc_string): Make that OBJC_STRING. (objc_string nonterminal): Delete. (yylexname): Delete code to handle fake string constants. (yylexstring): Delete entirely. (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need to handle CPP_ATSIGN. * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. * c-opts.c (missing_arg, c_common_handle_option): Handle OPT_fexec_charset_ and OPT_fwide_exec_charset_. (c_common_init): Set cpp_opts->bytes_big_endian, not cpp_opts->EBCDIC. Call cpp_init_iconv. (print_help): Document -fexec-charset= and -fexec-wide-charset=. (TARGET_EBCDIC): Delete default definition. * objc/objc-act.c (build_objc_string_object): No need to handle string constant concatenation. cp: * parser.c (cp_lexer_read_token): No need to handle string constant concatenation. testsuite: * gcc.c-torture/execute/wchar_t-1.x: New file; XFAIL wchar_t-1.c everywhere. * gcc.dg/concat.c: Concatenation of string constants with __FUNCTION__ / __PRETTY_FUNCTION__ is now a hard error. * gcc.dg/wtr-strcat-1.c: Loosen dg-warning regexp. * gcc.dg/cpp/escape-2.c: Use wide character constants where necessary to avoid multi-character character constant warning. * gcc.dg/cpp/escape.c: Likewise. * gcc.dg/cpp/ucs.c: Likewise. Remove backslashes from dg-bogus comments, as they confuse Tcl. Fix a typo. libstdc++-v3: * testsuite/22_locale/collate/compare/wchar_t/2.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/hash/wchar_t/2.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc * testsuite/22_locale/collate/transform/wchar_t/2.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: XFAIL on all targets. From-SVN: r68952