cp:
PR C++/7964
* cp-tree.h (resolve_scoped_fn_name): Prototype.
* call.c (resolve_scoped_fn_name): New function. Deal with
more template expansion. Broken out of ...
* parse.y (parse_finish_call_expr): ... here. Call it.
* decl2.c (build_expr_from_tree, CALL_EXPR): Use
resolve_scoped_fn_name and build_call_from_tree.
testsuite:
* g++.dg/lookup/scoped3.C: New test.
From-SVN: r60483
cp:
PR c++/9053
* decl.c (duplicate_decls): Templates may be disambiguated by
return type.
PR c++/8702
* decl2.c (check_classfn): Use lookup_fnfield_1. List all
conversion operators on failure.
testsuite
* g++.dg/lookup/decl1.C: New test.
* g++.dg/lookup/decl2.C: New test.
From-SVN: r60482
* class.c (build_static_field_ref): Check FIELD_FINAL.
* constants.c (alloc_class_constant): Use TYPE_CPOOL_DATA_REF
instead of current_constant_pool_data_ref.
* java-tree.h (current_constant_pool_data_ref): Undefine.
(JTI_CURRENT_CONSTANT_POOL_DATA_REF): Remove.
* jcf-parse.c (init_outgoing_cpool): Don't initialize
current_constant_pool_data_ref.
* except.c (prepare_eh_table_type ): Use DECL_NAME of class type,
not build_internal_class_name.
* parse.y (patch_incomplete_class_ref): Always emit `class$' method.
Use it when class ref isn't certain to be compiled.
From-SVN: r60448
* doc/include/gcc-common.texi: Define DEVELOPMENT.
ada:
* gnat_rm.texi: Include gcc-common.texi. Use GCC version number
only.
* Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
$(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
$(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
$(srcdir)/doc/include/gcc-common.texi.
f:
* root.texi: Include gcc-common.texi.
* bugs.texi, news.texi: Don't include root.texi as part of full
manual.
* g77.texi: Update for use of gcc-common.texi.
* Make-lang.in ($(srcdir)/f/g77.info, f/g77.dvi): Depend on
$(srcdir)/doc/include/gcc-common.texi.
java:
* gcj.texi: Include gcc-common.texi.
* Make-lang.in ($(srcdir)/java/gcj.info, java/gcj.dvi): Depend on
$(srcdir)/doc/include/gcc-common.texi.
treelang:
* treelang.texi: Include gcc-common.texi.
* Make-lang.in ($(srcdir)/treelang/treelang.info, treelang.dvi):
Depend on gcc-common.texi. Add other missing dependencies.
(treelang.dvi): Use texi2dvi.
From-SVN: r60446
* stor-layout.c (update_alignment_for_field): Correct handling of
unnamed bitfields on PCC_BITFIELD_TYPE_MATTERS machines.
* doc/tm.texi (PCC_BITFIELD_TYPE_MATTERS): Note that an unnamed
bitfield does not affect alignment.
* testsuite/gcc.dg/i386-bitfield3.c: New test.
From-SVN: r60439
* config/h8300/h8300-protos.h: Update the prototype of
expand_a_shift.
* config/h8300/h8300.c (expand_a_shift): Change the return
type to void.
* config/h8300/h8300.md: Update all the uses of
expand_a_shift.
From-SVN: r60436
* tree.c (save_expr): Allow either side of a dyadic operand to be
constant.
* doc/portability.texi (portability): Update portability goals.
From-SVN: r60435
* stor-layout.c (update_alignment_for_field): Use
ADJUST_FIELD_ALIGN when computing the alignment for a zero-width
bitfield when PCC_BITFIELD_TYPE_MATTERS.
From-SVN: r60419
* config/h8300/h8300.md (*zero_extendqihi2_h8300): Make the
second alternative "#".
(*zero_extendqihi2_h8300hs): Likewise.
(a define_split): New.
From-SVN: r60388
* config/h8300/h8300-protos.h: Update the prototype for
split_adds_subs.
Add prototypes for const_le_2_operand and const_le_6_operand.
* config/h8300/h8300.c (split_adds_subs): Add an argument to
specify whether inc/dec should be used when possible.
(const_le_2_operand): New.
(const_le_6_operand): Likewise.
* config/h8300/h8300.md (two peepholes): New.
From-SVN: r60387
* config/alpha/alpha.c (decl_has_samegp): New.
(samegp_function_operand): Use it. Rename from
current_file_function_operand.
(direct_call_operand): Handle -msmall-text via symbol->jump.
(tls_symbolic_operand_1): Use T for tprel64, t for smaller tprel.
(tls_symbolic_operand_type): Likewise.
(alpha_encode_section_info): Likewise. Handle -msmall-text.
(alpha_function_ok_for_sibcall): Use decl_has_samegp.
(alpha_end_function): Set symbol->jump for functions defined in
the text section.
* config/alpha/alpha-protos.h: Update.
* config/alpha/alpha.h (MASK_SMALL_TEXT, TARGET_SMALL_TEXT): New.
(TARGET_SWITCHES): Add -msmall-text and -mlarge-text.
(PREDICATE_CODES): Update.
* config/alpha/alpha.md (call patterns): Update for
samegp_function_operand rename; use !samegp reloc if
TARGET_EXPLICIT_RELOCS.
* doc/invoke.text: Document -msmall-text and -mlarge-text.
From-SVN: r60373
* config/ns32k/ns32k.md (movdi): Use "l" instead of "f" to match
all registers capable of holding a double float.
(*rcond): change name of "reverse branch" insns to
something more meaningful.
(*rbgt, *rblt, *rbge, *rble): Reverse branches to handle IEEE
comparisons properly.
(*ffs): Change operand 0 from write to read-modify-write.
(*ffsssi2): Drop constraints from define_expand.
* config/ns32k/ns32k.h (STORE_RATIO, STORE_BY_PIECES): Avoid using
MOVE_RATIO as default for store operations.
* config/ns32k/ns32k.h (enum reg_class, REG_CLASS_NAMES): Add
LONG_REGS class.
(CANNOT_CHANGE_MODE_CLASS): Can't subreg LONG_REGS.
(GO_IF_LEGITIMATE_ADDRESS): Remove spurious abort().
* config/ns32k/ns32k.c (regclass_map): Add LONG_REGS class.
* config/ns32k/STATUS: New File
* config/ns32k/NOTES: New file.
From-SVN: r60370
* doc/invoke.texi: Document -mzarch, -mesa, -mcpu= and -march=
option for S/390 and zSeries.
* config/s390/s390.c (s390_cpu, s390_cpu_string, s390_arch,
s390_arch_string): New variables.
(override_options): Checking for options and setting of
appropriate target_flags, cpu and arch flags.
* config/s390/s390.h: (processor_type): New enum.
(TARGET_SWITCHES): New switches -mesa/zarch.
* config/s390/s390.md: New attribute 'cpu'.
From-SVN: r60364
* config/i386/i386.c (ix86_handle_cdecl_attribute): Check for
attributes incompatible with fastcall attribute.
(ix86_handle_regparm_attribute): Likewise.
* config/i386/i386.c (ix86_comp_type_attributes): Check for mismatched
fastcall types.
* config/i386/cygwin.h (TARGET_OS_CPP_BUILTINS): Add fastcall
attributes.
(ASM_OUTPUT_LABELREF): Define as i386_pe_output_labelref.
* config/i386/i386-protos.h (i386_pe_output_labelref): Declare.
* config/i386/winnt.c (i386_pe_mark_dllimport). Add __imp_ prefix in
i386_pe_output_labelref rather than here.
(gen_fastcall_suffix): New function. Decorates a label name with the
fastcall prefix (@) and the stdcall suffix.
(i386_pe_encode_section_info): Call gen_fastcall_suffix() if a symbol
has a fastcall attribute.
(i386_pe_output_labelref): New function. Outputs a label reference.
* config/i386/i386.c (ix86_attribute_table): Accept 'fastcall' as a
valid attribute.
(ix86_return_pops_args): Fastcall functions pop the stack.
(init_cumulative_args): Reserve registers ECX and EDX if function has
fastcall attribute.
(function_arg): Use registers ECX and EDX if function has fastcall
attribute.
* config/i386/i386.h (CUMULATIVE_ARGS): Add fastcall attribute flag.
(DLL_IMPORT_EXPORT_PREFIX): Redefine as '#'.
(FASTCALL_PREFIX): Define as '@'.
* config/i386/mingw32.h (TARGET_OS_CPP_BUILTINS): Add fastcall
attributes.
* doc/extend.texi: Add documentation of fastcall attribute.
* testsuite/gcc.dg/i386-fastcall-1.c: New.
Co-Authored-By: Danny Smith <dannysmith@users.sourceforge.net>
Co-Authored-By: Eric Kohl <ekohl@rz-online.de>
From-SVN: r60337
* configure.in: FORBUILD when build!=host changed from
../$build-alias to ../build-$build_alias to match change made
in top directory.
* configure: Regenerated.
From-SVN: r60336
This was approved for 3.4 BIB branch. But since it is dead now, I am putting
this in mainline sources.
2002-12-19 Devang Patel <dpatel@apple.com>
* gcc.c (struct default_compiler): Recognizes input file name with
.CPP extension as C++ source files
* cp/lang-spec.h: Same
* doc/invoke.texi: Add documentation for .CPP support.
From-SVN: r60330
C++ ABI change: Mangle anonymous unions using the name of their
first named field (by depth-first search). Should not cause
binary compatibility problems, though, as the compiler previously
didn't emit anything for affected unions.
* cp-tree.def (ALIAS_DECL): New tree code.
* decl2.c (build_anon_union_vars): Build ALIAS_DECLs. Return the
first field, not the largest.
(finish_anon_union): Don't mess with RTL. Do set DECL_ASSEMBLER_NAME,
push the decl, and write it out at namespace scope.
* decl.c (lookup_name_real): See through an ALIAS_DECL.
(pushdecl): Add namespace bindings for ALIAS_DECLs.
* rtti.c (unemitted_tinfo_decl_p): Don't try to look at the name
of a decl which doesn't have one.
* typeck.c (build_class_member_access_expr): Don't recurse if
we already have the type we want.
From-SVN: r60315
C++ ABI change: Mangle anonymous unions using the name of their
first named field (by depth-first search). Should not cause
binary compatibility problems, though, as the compiler previously
didn't emit anything for affected unions.
* cp-tree.def (ALIAS_DECL): New tree code.
* decl2.c (build_anon_union_vars): Build ALIAS_DECLs. Return the
first field, not the largest.
(finish_anon_union): Don't mess with RTL. Do set DECL_ASSEMBLER_NAME,
push the decl, and write it out at namespace scope.
* decl.c (lookup_name_real): See through an ALIAS_DECL.
(pushdecl): Add namespace bindings for ALIAS_DECLs.
* rtti.c (unemitted_tinfo_decl_p): Don't try to look at the name
of a decl which doesn't have one.
* typeck.c (build_class_member_access_expr): Don't recurse if
we already have the type we want.
From-SVN: r60314
2002-12-18 Daniel Berlin <dberlin@dberlin.org>
* Makefile.in (OBJS): Add alloc-pool.o
(alloc-pool.o): New object.
* alloc-pool.c: New file.
* alloc-pool.h: New file.
From-SVN: r60312
PR c++/8099
* friend.c (make_friend_class): Allow partial specialization
when declaration is not a template friend.
* g++.dg/template/friend9.C: New test.
From-SVN: r60308
PR c++/3663
* pt.c (lookup_template_class): Copy TREE_PRIVATE and
TREE_PROTECTED to created decl nodes.
* g++.dg/template/access7.C: New test.
From-SVN: r60307
* config/rs6000/t-rs6000: Move contents to t-fprules,
add rules for dependencies of rs6000.o and to build rs6000-c.o
* config/rs6000/t-fprules: New file from t-rs6000.
* config/rs6000/t-beos: Remove soft-fp rules.
* config/rs6000/t-ppccomm: Likewise.
* config/rs6000/t-newas: Likewise.
* config/rs6000/t-rs6000-c-rule: Delete.
* config.gcc: Use t-fprules for rs6000/ ports when appropriate.
Use t-rs6000 for all rs6000/ ports instead of t-rs6000-c-rule.
Create generic Darwin rules.
From-SVN: r60265
* decl.c (finish_function): Also complain about no return in
templates.
* semantics.c (finish_return_stmt): Also call check_return_expr in
templates.
* typeck.c (check_return_expr): In a template, just remember that we
saw a return.
From-SVN: r60236