* emutls.c (struct __emutls_array): New.
(emutls_destroy): Use it instead of casting element 0 from void*.
(__emutls_get_address): Likewise.
From-SVN: r123351
* intrinsic.c (conv_name): Let gfc_get_string handle the format.
(find_conv): Compare pointers instead of calling strcmp.
(find_sym): Likewise, but ensure that the compared pointer is in
the global string table.
From-SVN: r123346
2007-03-29 Douglas Gregor <doug.gregor@gmail.com>
PR tree-optimization/30666
* tree.c (build_complex_type): When creating type names for DWARF2
debug info, create TYPE_DECLs for TYPE_NAME instead of
IDENTIFIER_NODEs.
(build_common_tree_nodes_2): Use build_complex_type when building
predefined complex types, to preserve canonical types.
From-SVN: r123330
* ifcvt.c (struct noce_if_info): Add then_else_reversed field.
(noce_get_alt_condition): Look at it to determine whether to
reverse the condition or not.
(noce_get_condition): Substitute the truth for lies.
(noce_find_if_block): Set the then_else_reversed field.
From-SVN: r123327
* config/fr30/fr30.md (movdi): Do not accept immediates as the destination of this insn.
* config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather than calling gen_rtx_SET directly.
Use r0 to hold the value of 'address + 4' rather than a stack based temporary which can be
mis-optimized away.
From-SVN: r123326
2007-03-28 Simon Martin <simartin@users.sourceforge.net>
PR c++/29077
* decl.c (grokfndecl): Properly setup decl if it is a constructor or a
destructor.
From-SVN: r123312
2007-03-28 Casey Marshall <csm@gnu.org>
* gnu/javax/net/ssl/provider/ClientHandshake.java (RSAGen.implRun):
check keyEncipherment bit of the certificate, and just pass the public
key to the cipher.
From-SVN: r123307
2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
* parser.c (struct cp_parser): Update comment for
greater_than_is_operator_p.
(cp_parser_primary_expression): In C++0x mode, a cast operator can
be terminated with a `>>' token when !GREATER_THAN_IS_OPERATOR_P.
(TOKEN_PRECEDENCE): In C++0x mode, `>>' is treated like `>' when
!GREATER_THAN_IS_OPERATOR_P.
(cp_parser_binary_expression): When -Wc++0x-compat, warn about
`>>' operators that will become two `>' tokens in C++0x.
(cp_parser_parameter_declaration): Treat `>>' like `>' in C++0x
mode, allowing it to terminate default arguments.
(cp_parser_enclosed_template_argument_list): In C++0x mode, treat
`>>' like two consecutive `>' tokens.
(cp_parser_skip_to_end_of_template_parameter_list): Ditto.
(cp_parser_next_token_ends_template_argument_p): In C++0x, `>>'
ends a template argument.
2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
* g++.dg/cpp0x/bracket1.C: New.
* g++.dg/cpp0x/bracket2.C: New.
* g++.dg/cpp0x/bracket3.C: New.
* g++.dg/cpp0x/bracket4.C: New.
From-SVN: r123302
* config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
option.
(TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
* config/i386/i386.c (ix86_tune_features): Initialize new
tuning option.
* config/i386/predicates.md (promotable_binary_operator): Use
TARGET_TUNE_PROMOTE_HIMODE_IMUL.
From-SVN: r123301
2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
* decl.c (redeclaration_error_message): Complain when redeclaring
a friend function with default template arguments (C++0x mode only).
* cp-tree.h (check_default_tmpl_args): Declare.
* pt.c (check_default_tmpl_args): In C++0x mode, permit default
template arguments in function templates. Add support for checking
the default template arguments of friend templates.
(push_template_decl_real): Fix call to check_default_tmpl_args.
(type_unification_real): If a template parameter has not been
deduced but provides a default template argument, substitute into
that default template argument.
* parser.c (cp_parser_init_declarator): When declaring (but not
defining!) a function template in C++0x mode, check for default
template arguments.
2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
* g++.dg/cpp0x/temp_default1.C: New.
* g++.dg/cpp0x/temp_default3.C: New.
* g++.dg/cpp0x/temp_default2.C: New.
* g++.dg/cpp0x/temp_default4.C: New.
From-SVN: r123300
2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
PR c++/29993
* decl.c (grokdeclarator): Deal with cv-qualified function type
typedefs in the same way for member and non-member functions.
2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
PR c++/29993
* g++.dg/other/cv_func2.C: New.
From-SVN: r123294
2007-03-27 Douglas Gregor <doug.gregor@gmail.com>
* tree.c (tree_contains_struct): Permit 512 tree codes.
* tree.h (tree_contains_struct): Ditto.
(MAX_TREE_CODES): Ditto.
(struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
SPARE member to store remaining padding bits.
From-SVN: r123287
2007-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/31052
* io/transfer.c (next_record_r): Do not call test_endfile if in namelist
mode.
From-SVN: r123284
* gcc.dg/dfp/func-vararg-alternate.h: New file.
* gcc.dg/dfp/func-vararg-alternate-d32.c: New test.
* gcc.dg/dfp/func-vararg-alternate-d64.c: New test.
* gcc.dg/dfp/func-vararg-alternate-d128.c: New test.
From-SVN: r123282