PR c++/18464
* call.c (build_this): In templates, do not bother with
build_unary_op.
* typeck.c (unary_complex_lvalue): In a template, always refuse
simplifications.
PR c++/18492
* cp-gimplify.c (cp_genericize): Relax assertion.
PR c++/11224
* cvt.c (convert_to_void): Warn about unused values.
PR c++/18257
* rtti.c (emit_support_tinfos): On systems without weak symbols,
emit the runtime library type-info objects as non-COMDAT.
PR c++/18464
* g++.dg/template/cond5.C: New test.
PR c++/18492
* g++.dg/inherit/thunk3.C: New test.
PR c++/11224
* g++.dg/warn/Wunused-9.C: New test.
From-SVN: r92491
gcc/
2004-12-22 Jan Beulich <jbeulich@novell.com>
* config.gcc: Add dbxelf.h to NetWare's tm_file.
* config/i386/netware-crt0.c: Prototype __init_environment and
__deinit_environment prior to their definition.
(__init_environment): Correct invokation of constructor function.
* config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use
builtin_define_std rather than builtin_define on IAPX386.
* config/i386/nwld.h: Disable stabs debugging info with the linker
this file supports.
* config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for
the output. Add -posix to the options as that is the more compatible
mode.
* gthr-nks.h: Formatting.
(__gthread_mutex_init_function): Kill the dubious use of
NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes
were not meant to be recursive.
(__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
__gthread_recursive_mutex_init_function,
__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
__gthread_recursive_mutex_unlock): New.
gcc/testsuite/
2004-12-22 Jan Beulich <jbeulich@novell.com>
* gcc.dg/20040813-1.c: Skip for *-*-netware*.
From-SVN: r92488
PR c++/18378
* call.c (convert_like_real): Do not permit the use of a copy
constructor to copy a packed field.
PR c++/17413
* decl.c (grokdeclarator): Return error_mark_node, not
void_type_node, to indicate errors.
* parser.c (cp_parser_template_parameter_list): Robustify.
(cp_parser_template_parameter): Likewise.
PR c++/19034
* tree.c (cp_tree_equal): Handle OVERLOAD.
PR c++/18378
* g++.dg/ext/packed8.C: New test.
PR c++/13268
* g++.dg/template/crash31.C: New test.
PR c++/19034
* g++.dg/template/crash30.C: New test.
From-SVN: r92486
2004-12-21 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/18984
* pointer-set.c (pointer_set_contains): Add back.
* pointer-set.h (pointer_set_contains): Add back.
2004-12-21 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/18984
* cp-gimplify.c (cp_genericize_r): Don't insert first but instead
check to see if contains the pointer. Insert the statement before
returning.
2004-12-21 Andrew Pinski <pinskia@physics.uc.edu>
PR C++/18984
* g++.dg/eh/ctor3.C: New test.
From-SVN: r92470
2004-12-21 James A. Morrison <phython@gcc.gnu.org>
PR c/18963
* c-decl.c (pushdecl): Remove block trying to merge static function
declarations at block scope to file scope declarations.
testsuite:
PR c/18963
* gcc.dg/pr18963-1.c: New test.
From-SVN: r92460
2004-12-19 James A. Morrison <phython@gcc.gnu.org>
PR c/18596
* c-parse.in (initdcl): Don't process a declaration if start_decl fails.
(notype_initdcl): Don't process a declaration if start_decl fails.
* c-decl.c (start_decl): Fail if grokdeclarator fails.
(grokdeclarator): Fail if a function definition has an invalid storage
class.
* c-typeck.c (start_init): Treat error_mark_node the same as 0.
testsuite:
PR c/18596
* gcc.dg/funcdef-storage-1.c (foo): Remove.
* gcc.dg/pr18596-1.c: Use dg-error.
(dg-options): Use -fno-unit-at-a-time.
* gcc.dg/pr18596-2.c: New test.
* gcc.dg/pr18596-3.c: New test.
From-SVN: r92459
* config/i386/i386.c (x86_sse_split_regs): Rename from
x86_sse_partial_regs.
* config/i386/i386.h (x86_sse_split_regs): Likewise.
(TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS.
* config/i386/i386.md (*): Update to match. Remove two
floatsisf splitters that use it.
From-SVN: r92458
PR middle-end/18683
* config/rs6000/rs6000.c (current_file_function_operand): Only check
current_function_decl's DECL_RTL if it has already been set.
From-SVN: r92453
PR middle-end/18776
* expr.c (write_complex_part): Use a subreg if the original object
is a hard reg that spans an even number of regs or a MEM.
(read_complex_part): Likewise.
From-SVN: r92440
2004-12-20 Andrew Pinski <pinskia@physics.uc.edu>
PR libobjc/12035
* gc.c: Remove definition of LOGWL, modWORDSZ, and divWORDSZ since
they are not used.
Include limits.h and stdlib.h.
Define BITS_PER_WORD.
From-SVN: r92439
2004-12-20 Andrew Pinski <pinskia@physics.uc.edu>
PR libobjc/12035
* gc.c: Remove definition of LOGWL, modWORDSZ, and divWORDSZ since
they are not used. Include limits.h and stdlib.h.
From-SVN: r92437
gcc/
PR middle-end/18191
PR middle-end/18965
PR middle-end/18999
* expr.c (categorize_ctor_elements_1): Count the total number
of elements in the constructor.
(categorize_ctor_elements): Return it in a new argument.
* tree.h (categorize_ctor_elements): Adjust prototype.
* gimplify.c (gimplify_init_ctor_eval_range): New.
(gimplify_init_ctor_eval): Gimplify RANGE_EXPR.
(gimplify_init_constructor): Block clear the object if the
constructor has fewer elements than the object type. Only try
to add assignments to individual elements when we have to.
testsuite/
* gcc.dg/20041219-1.c: New test.
Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
From-SVN: r92415
* doc/md.texi (Expander Definitions): Use @emph instead of @strong
around Note: text to workaround a limitation of the Info format.
* doc/cpp.texi (Invocation): Likewise.
* doc/cppopts.texi: Likewise.
From-SVN: r92411