i386.c (ix86_handle_cdecl_attribute): Check for attributes incompatible with fastcall attribute.
* 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
Nathanael Nerode [Thu, 19 Dec 2002 21:44:30 +0000 (21:44 +0000)]
configure.in: FORBUILD when build!=host changed from ../$build-alias to ../build-$build_alias...
* configure.in: FORBUILD when build!=host changed from
../$build-alias to ../build-$build_alias to match change made
in top directory.
* configure: Regenerated.
Devang Patel [Thu, 19 Dec 2002 20:34:43 +0000 (12:34 -0800)]
This was approved for 3.4 BIB branch.
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.
* java/lang/natClassLoader.cc (defineClass0): Removed erroneous
comment.
* java/lang/ClassLoader.java (defineClass): Use chained
exception when rethrowing.
* defineclass.cc (handleClassBegin): Mark class as interpreted.
* java/lang/reflect/Modifier.java (INVISIBLE, INTERPRETED): New
constants.
* resolve.cc (_Jv_PrepareMissingMethods): New function.
(_Jv_PrepareClass): Use it.
* include/java-interp.h (_Jv_IsInterpretedClass): Rewrote.
(_Jv_InterpClass): _Jv_PrepareMissingMethods now friend.
* java/lang/Class.h (Class::getModifiers): Mask with ALL_FLAGS.
(Class): _Jv_PrepareMissingMethods now friend.
* java/lang/natClassLoader.cc (defineClass0): Use JvSynchronize.
Record `NULL' for system class loader.
(_Jv_RegisterInitiatingLoader): Use JvSynchronize. Special case
system class loader.
(_Jv_FindClassInCache): Likewise.
(_Jv_UnregisterClass): Use JvSynchronize. Free old loader info.
(_Jv_FindClass): Special case system class loader.
* java/lang/natClass.cc (_Jv_abstractMethodError): New function.
(_Jv_SetVTableEntries): Put _Jv_abstractMethodError into empty
vtable slots.
(_Jv_LayoutVTableMethods): Don't generate vtable slot for a method
in a final class.
(_getDeclaredMethod): Don't return synthetic methods.
(getDeclaredMethods): Likewise.
(_getMethod): Likewise.
(_getMethods): Likewise.
Jason Merrill [Thu, 19 Dec 2002 17:43:54 +0000 (12:43 -0500)]
Handle anonymous unions at the tree level.
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.
Jason Merrill [Thu, 19 Dec 2002 17:16:26 +0000 (12:16 -0500)]
Handle anonymous unions at the tree level.
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.
Kaveh R. Ghazi [Thu, 19 Dec 2002 01:54:59 +0000 (01:54 +0000)]
vector_capacity.cc (test03): Move ...
* testsuite/23_containers/vector_capacity.cc (test03): Move ...
* testsuite/23_containers/vector_resize.cc: ...here as a new file.
Pass in -lmalloc for irix6.
* testsuite/27_io/ios_base_storage.cc: Pass in -lmalloc for irix6.
Geoffrey Keating [Wed, 18 Dec 2002 22:45:36 +0000 (22:45 +0000)]
t-rs6000: Move contents to t-fprules...
* 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.
Jason Merrill [Wed, 18 Dec 2002 06:26:58 +0000 (01:26 -0500)]
decl.c (finish_function): Also complain about no return in templates.
* 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.
Jason Merrill [Tue, 17 Dec 2002 06:24:02 +0000 (01:24 -0500)]
c-semantics.c (add_scope_stmt): Abort if the end SCOPE_STMT doesn't match the begin SCOPE_STMT in partialness.
* c-semantics.c (add_scope_stmt): Abort if the end SCOPE_STMT
doesn't match the begin SCOPE_STMT in partialness.
cp/
* semantics.c (do_pushlevel): Call pushlevel after adding the
SCOPE_STMT.
(do_poplevel): Call poplevel before adding the SCOPE_STMT.
* parse.y (function_body): Go back to using compstmt.
* decl.c (pushdecl): Skip another level to get to the parms level.
* call.c (build_new_method_call): Use is_dummy_object to determine
whether or not to evaluate the object parameter to a static member
function.
Geert Bosch [Sun, 15 Dec 2002 16:18:20 +0000 (17:18 +0100)]
re PR ada/5690 (renaming subprograms and default_expression)
* sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
case of a body created for a Renaming_As_Body, on which
conformance checks are not performed. Fixes PR ada/5690.
Jason Merrill [Sat, 14 Dec 2002 08:37:12 +0000 (03:37 -0500)]
Makefile.tpl (check-gcc-c++): Renamed from check-c++.
* Makefile.tpl (check-gcc-c++): Renamed from check-c++. Don't run
library tests.
(check-c++): Just depend on it and check-target-libstdc++-v3.
* Makefile.in: Regenerate.
Alexandre Oliva [Fri, 13 Dec 2002 23:07:47 +0000 (23:07 +0000)]
mn10300.c (print_operand): Check operand's range.
* config/mn10300/mn10300.c (print_operand) <case N>: Check
operand's range. Print value directly, without aid from
output_address.
<case U>: New.
<case S>: Make sure argument to fprintf has the right type.
* config/mn10300/mn10300.h (OK_FOR_T): New macro.
(EXTRA_CONSTRAINT): Adjust.
* config/mn10300/mn10300.md: Add new all-QImode pattern for
bclr. Use %U for immediate operands of bset and bclr.
(iorqi3): New expand, with insns for AM33 and mn10300.