mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-18 07:08:51 +08:00
merge
From-SVN: r14852
This commit is contained in:
parent
62d65906d6
commit
da20811c09
@ -1,6 +1,80 @@
|
|||||||
|
Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
|
||||||
|
|
||||||
|
* rtti.c (permanent_obstack): Fix decl to not be a pointer.
|
||||||
|
|
||||||
|
* cp-tree.h (report_type_mismatch): Add prototype.
|
||||||
|
* call.c (build_overload_call_real): Remove erroneous fourth
|
||||||
|
argument to report_type_mismatch.
|
||||||
|
(build_user_type_conversion_1): Remove erroneous second arg to
|
||||||
|
tourney.
|
||||||
|
(build_new_function_call): Likewise.
|
||||||
|
(build_object_call): Likewise.
|
||||||
|
(build_new_op): Likewise.
|
||||||
|
(build_new_method_call): Likewise.
|
||||||
|
|
||||||
|
Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||||
|
|
||||||
|
* error.c (dump_decl): Don't bother processing a function with no
|
||||||
|
DECL_LANG_SPECIFIC.
|
||||||
|
|
||||||
|
* method.c (emit_thunk): Call init_function_start in the macro case.
|
||||||
|
|
||||||
|
Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
|
||||||
|
|
||||||
|
* decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
|
||||||
|
defined and used to set flag_vtable_thunks.
|
||||||
|
|
||||||
|
Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||||
|
|
||||||
|
* parse.y: Don't clear the inlines from their obstack until they've
|
||||||
|
all been processed.
|
||||||
|
|
||||||
|
* decl.c (duplicate_decls): Don't complain about exception
|
||||||
|
specification mismatch if flag_exceptions is off.
|
||||||
|
|
||||||
|
Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
|
||||||
|
|
||||||
|
* Make-lang.in (c++.distclean): Remove g++.c on make distclean.
|
||||||
|
|
||||||
|
Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
|
* cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
|
||||||
|
* cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
|
||||||
|
Include <stdio.h> before include files that formerly used STDIO_PROTO.
|
||||||
|
|
||||||
|
* decl.c, g++spec.c, lex.c, method.c, repo.c:
|
||||||
|
Include "config.h" first, as per autoconf manual.
|
||||||
|
|
||||||
|
Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||||
|
|
||||||
|
* decl.c (duplicate_decls): Tweak wording.
|
||||||
|
* lex.c (do_pending_defargs): Don't die if we see a default arg
|
||||||
|
that isn't a DEFAULT_ARG.
|
||||||
|
* error.c (dump_expr): Handle DEFAULT_ARG.
|
||||||
|
|
||||||
|
* decl2.c (lang_decode_option): Handle -fhandle-exceptions.
|
||||||
|
* lang-options.h: Add -fhandle-exceptions.
|
||||||
|
|
||||||
|
* class.c (build_vtable): vtables are artificial.
|
||||||
|
(prepare_fresh_vtable): Likewise.
|
||||||
|
|
||||||
|
Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||||
|
|
||||||
|
* cvt.c (ocp_convert): After converting to the target type, set
|
||||||
|
LOOKUP_NO_CONVERSION.
|
||||||
|
|
||||||
|
* call.c (joust): Warn about potentially confusing promotion rules
|
||||||
|
with -Wsign-promo.
|
||||||
|
* cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
|
||||||
|
|
||||||
|
Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
|
||||||
|
|
||||||
|
* exception.cc: Declare __terminate_func with noreturn attribute.
|
||||||
|
|
||||||
Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
|
Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||||
|
|
||||||
* parse.y: Break out eat_saved_input, handle errors.
|
* parse.y: Break out eat_saved_input, handle errors.
|
||||||
|
(function_try_block): Use compstmt instead of compstmt_or_error.
|
||||||
|
|
||||||
Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
|
Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||||
|
|
||||||
@ -573,6 +647,8 @@ Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
|
|||||||
function is not changed.
|
function is not changed.
|
||||||
|
|
||||||
* call.c (build_over_call): Move setting of conv into the loop.
|
* call.c (build_over_call): Move setting of conv into the loop.
|
||||||
|
Note: this change, along with the related changes of the 18th thru
|
||||||
|
the 20th of April, fix an infinite loop problem in conversions.
|
||||||
|
|
||||||
Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
|
Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||||
|
|
||||||
|
@ -247,6 +247,7 @@ c++.clean:
|
|||||||
c++.distclean:
|
c++.distclean:
|
||||||
-rm -f cp/config.status cp/Makefile
|
-rm -f cp/config.status cp/Makefile
|
||||||
-rm -f cp/parse.output
|
-rm -f cp/parse.output
|
||||||
|
-rm -f g++.c
|
||||||
c++.extraclean:
|
c++.extraclean:
|
||||||
c++.maintainer-clean:
|
c++.maintainer-clean:
|
||||||
-rm -f cp/parse.c cp/parse.h
|
-rm -f cp/parse.c cp/parse.h
|
||||||
|
@ -2885,8 +2885,7 @@ build_overload_call_real (fnname, parms, flags, final_cp, require_complete)
|
|||||||
return NULL_TREE;
|
return NULL_TREE;
|
||||||
|
|
||||||
if (flags & LOOKUP_COMPLAIN)
|
if (flags & LOOKUP_COMPLAIN)
|
||||||
report_type_mismatch (cp, parms, "function",
|
report_type_mismatch (cp, parms, "function");
|
||||||
decl_as_string (cp->function, 1));
|
|
||||||
|
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
}
|
}
|
||||||
@ -4287,7 +4286,7 @@ build_user_type_conversion_1 (totype, expr, flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
candidates = splice_viable (candidates);
|
candidates = splice_viable (candidates);
|
||||||
cand = tourney (candidates, totype);
|
cand = tourney (candidates);
|
||||||
|
|
||||||
if (cand == 0)
|
if (cand == 0)
|
||||||
{
|
{
|
||||||
@ -4400,7 +4399,7 @@ build_new_function_call (fn, args, obj)
|
|||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
}
|
}
|
||||||
candidates = splice_viable (candidates);
|
candidates = splice_viable (candidates);
|
||||||
cand = tourney (candidates, NULL_TREE);
|
cand = tourney (candidates);
|
||||||
|
|
||||||
if (cand == 0)
|
if (cand == 0)
|
||||||
{
|
{
|
||||||
@ -4474,7 +4473,7 @@ build_object_call (obj, args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
candidates = splice_viable (candidates);
|
candidates = splice_viable (candidates);
|
||||||
cand = tourney (candidates, NULL_TREE);
|
cand = tourney (candidates);
|
||||||
|
|
||||||
if (cand == 0)
|
if (cand == 0)
|
||||||
{
|
{
|
||||||
@ -4749,7 +4748,7 @@ build_new_op (code, flags, arg1, arg2, arg3)
|
|||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
}
|
}
|
||||||
candidates = splice_viable (candidates);
|
candidates = splice_viable (candidates);
|
||||||
cand = tourney (candidates, NULL_TREE);
|
cand = tourney (candidates);
|
||||||
|
|
||||||
if (cand == 0)
|
if (cand == 0)
|
||||||
{
|
{
|
||||||
@ -5386,7 +5385,7 @@ build_new_method_call (instance, name, args, basetype_path, flags)
|
|||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
}
|
}
|
||||||
candidates = splice_viable (candidates);
|
candidates = splice_viable (candidates);
|
||||||
cand = tourney (candidates, NULL_TREE);
|
cand = tourney (candidates);
|
||||||
|
|
||||||
if (cand == 0)
|
if (cand == 0)
|
||||||
{
|
{
|
||||||
@ -5751,11 +5750,36 @@ joust (cand1, cand2)
|
|||||||
|
|
||||||
for (i = 0; i < len; ++i)
|
for (i = 0; i < len; ++i)
|
||||||
{
|
{
|
||||||
int comp = compare_ics (TREE_VEC_ELT (cand1->convs, i+off1),
|
tree t1 = TREE_VEC_ELT (cand1->convs, i+off1);
|
||||||
TREE_VEC_ELT (cand2->convs, i+off2));
|
tree t2 = TREE_VEC_ELT (cand2->convs, i+off2);
|
||||||
|
int comp = compare_ics (t1, t2);
|
||||||
|
|
||||||
if (comp != 0)
|
if (comp != 0)
|
||||||
{
|
{
|
||||||
|
if (warn_sign_promo
|
||||||
|
&& ICS_RANK (t1) + ICS_RANK (t2) == STD_RANK + PROMO_RANK
|
||||||
|
&& TREE_CODE (t1) == STD_CONV
|
||||||
|
&& TREE_CODE (t2) == STD_CONV
|
||||||
|
&& TREE_CODE (TREE_TYPE (t1)) == INTEGER_TYPE
|
||||||
|
&& TREE_CODE (TREE_TYPE (t2)) == INTEGER_TYPE
|
||||||
|
&& (TYPE_PRECISION (TREE_TYPE (t1))
|
||||||
|
== TYPE_PRECISION (TREE_TYPE (t2)))
|
||||||
|
&& (TREE_UNSIGNED (TREE_TYPE (TREE_OPERAND (t1, 0)))
|
||||||
|
|| (TREE_CODE (TREE_TYPE (TREE_OPERAND (t1, 0)))
|
||||||
|
== ENUMERAL_TYPE)))
|
||||||
|
{
|
||||||
|
tree type = TREE_TYPE (TREE_OPERAND (t1, 0));
|
||||||
|
tree type1, type2;
|
||||||
|
if (comp > 0)
|
||||||
|
type1 = TREE_TYPE (t1), type2 = TREE_TYPE (t2);
|
||||||
|
else
|
||||||
|
type1 = TREE_TYPE (t2), type2 = TREE_TYPE (t1);
|
||||||
|
|
||||||
|
cp_warning ("`%T' promotes to `%T', not `%T'",
|
||||||
|
type, type1, type2);
|
||||||
|
cp_warning (" in call to `%D'", DECL_NAME (cand1->fn));
|
||||||
|
}
|
||||||
|
|
||||||
if (winner && comp != winner)
|
if (winner && comp != winner)
|
||||||
{
|
{
|
||||||
winner = 0;
|
winner = 0;
|
||||||
|
@ -671,6 +671,7 @@ build_vtable (binfo, type)
|
|||||||
TYPE_BINFO_VTABLE (type) = decl;
|
TYPE_BINFO_VTABLE (type) = decl;
|
||||||
TYPE_BINFO_VIRTUALS (type) = virtuals;
|
TYPE_BINFO_VIRTUALS (type) = virtuals;
|
||||||
|
|
||||||
|
DECL_ARTIFICIAL (decl) = 1;
|
||||||
TREE_STATIC (decl) = 1;
|
TREE_STATIC (decl) = 1;
|
||||||
#ifndef WRITABLE_VTABLES
|
#ifndef WRITABLE_VTABLES
|
||||||
/* Make them READONLY by default. (mrs) */
|
/* Make them READONLY by default. (mrs) */
|
||||||
@ -781,6 +782,7 @@ prepare_fresh_vtable (binfo, for_type)
|
|||||||
/* Remember which class this vtable is really for. */
|
/* Remember which class this vtable is really for. */
|
||||||
DECL_CONTEXT (new_decl) = for_type;
|
DECL_CONTEXT (new_decl) = for_type;
|
||||||
|
|
||||||
|
DECL_ARTIFICIAL (new_decl) = 1;
|
||||||
TREE_STATIC (new_decl) = 1;
|
TREE_STATIC (new_decl) = 1;
|
||||||
BINFO_VTABLE (binfo) = pushdecl_top_level (new_decl);
|
BINFO_VTABLE (binfo) = pushdecl_top_level (new_decl);
|
||||||
DECL_VIRTUAL_P (new_decl) = 1;
|
DECL_VIRTUAL_P (new_decl) = 1;
|
||||||
|
@ -248,6 +248,11 @@ extern int warn_pmf2ptr;
|
|||||||
|
|
||||||
extern int warn_ecpp;
|
extern int warn_ecpp;
|
||||||
|
|
||||||
|
/* Nonzero means warn where overload resolution chooses a promotion from
|
||||||
|
unsigned to signed over a conversion to an unsigned of the same size. */
|
||||||
|
|
||||||
|
extern int warn_sign_promo;
|
||||||
|
|
||||||
/* Non-zero means warn when a function is declared extern and later inline. */
|
/* Non-zero means warn when a function is declared extern and later inline. */
|
||||||
|
|
||||||
extern int warn_extern_inline;
|
extern int warn_extern_inline;
|
||||||
@ -1463,7 +1468,7 @@ extern tree convert_and_check PROTO((tree, tree));
|
|||||||
extern void overflow_warning PROTO((tree));
|
extern void overflow_warning PROTO((tree));
|
||||||
extern void unsigned_conversion_warning PROTO((tree, tree));
|
extern void unsigned_conversion_warning PROTO((tree, tree));
|
||||||
/* Read the rest of the current #-directive line. */
|
/* Read the rest of the current #-directive line. */
|
||||||
extern char *get_directive_line STDIO_PROTO((FILE *));
|
extern char *get_directive_line PROTO((FILE *));
|
||||||
/* Subroutine of build_binary_op, used for comparison operations.
|
/* Subroutine of build_binary_op, used for comparison operations.
|
||||||
See if the operands have both been converted from subword integer types
|
See if the operands have both been converted from subword integer types
|
||||||
and, if so, perhaps change them both back to their original type. */
|
and, if so, perhaps change them both back to their original type. */
|
||||||
@ -2265,7 +2270,7 @@ extern void yyerror PROTO((char *));
|
|||||||
/* in method.c */
|
/* in method.c */
|
||||||
extern void init_method PROTO((void));
|
extern void init_method PROTO((void));
|
||||||
extern void do_inline_function_hair PROTO((tree, tree));
|
extern void do_inline_function_hair PROTO((tree, tree));
|
||||||
/* skip report_type_mismatch */
|
extern void report_type_mismatch PROTO((struct candidate *, tree, char *));
|
||||||
extern char *build_overload_name PROTO((tree, int, int));
|
extern char *build_overload_name PROTO((tree, int, int));
|
||||||
extern tree build_static_name PROTO((tree, tree));
|
extern tree build_static_name PROTO((tree, tree));
|
||||||
extern tree build_decl_overload PROTO((tree, tree, int));
|
extern tree build_decl_overload PROTO((tree, tree, int));
|
||||||
|
@ -26,6 +26,7 @@ Boston, MA 02111-1307, USA. */
|
|||||||
but what kind of conversions it does will depend on the language. */
|
but what kind of conversions it does will depend on the language. */
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "flags.h"
|
#include "flags.h"
|
||||||
#include "cp-tree.h"
|
#include "cp-tree.h"
|
||||||
@ -1100,7 +1101,10 @@ ocp_convert (type, expr, convtype, flags)
|
|||||||
|
|
||||||
if ((flags & LOOKUP_ONLYCONVERTING)
|
if ((flags & LOOKUP_ONLYCONVERTING)
|
||||||
&& ! (IS_AGGR_TYPE (dtype) && DERIVED_FROM_P (type, dtype)))
|
&& ! (IS_AGGR_TYPE (dtype) && DERIVED_FROM_P (type, dtype)))
|
||||||
ctor = build_user_type_conversion (type, ctor, flags);
|
{
|
||||||
|
ctor = build_user_type_conversion (type, ctor, flags);
|
||||||
|
flags |= LOOKUP_NO_CONVERSION;
|
||||||
|
}
|
||||||
if (ctor)
|
if (ctor)
|
||||||
ctor = build_method_call (NULL_TREE, ctor_identifier,
|
ctor = build_method_call (NULL_TREE, ctor_identifier,
|
||||||
build_tree_list (NULL_TREE, ctor),
|
build_tree_list (NULL_TREE, ctor),
|
||||||
|
@ -27,8 +27,8 @@ Boston, MA 02111-1307, USA. */
|
|||||||
/* ??? not all decl nodes are given the most useful possible
|
/* ??? not all decl nodes are given the most useful possible
|
||||||
line numbers. For example, the CONST_DECLs for enum values. */
|
line numbers. For example, the CONST_DECLs for enum values. */
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "rtl.h"
|
#include "rtl.h"
|
||||||
#include "flags.h"
|
#include "flags.h"
|
||||||
@ -2576,7 +2576,7 @@ duplicate_decls (newdecl, olddecl)
|
|||||||
{
|
{
|
||||||
cp_error ("default argument given for parameter %d of `%#D'",
|
cp_error ("default argument given for parameter %d of `%#D'",
|
||||||
i, newdecl);
|
i, newdecl);
|
||||||
cp_error_at ("conflicts with previous specification in `%#D'",
|
cp_error_at ("after previous specification in `%#D'",
|
||||||
olddecl);
|
olddecl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2699,6 +2699,7 @@ duplicate_decls (newdecl, olddecl)
|
|||||||
TYPE_RAISES_EXCEPTIONS (oldtype));
|
TYPE_RAISES_EXCEPTIONS (oldtype));
|
||||||
|
|
||||||
if ((pedantic || ! DECL_IN_SYSTEM_HEADER (olddecl))
|
if ((pedantic || ! DECL_IN_SYSTEM_HEADER (olddecl))
|
||||||
|
&& flag_exceptions
|
||||||
&& ! compexcepttypes (TREE_TYPE (newdecl), TREE_TYPE (olddecl)))
|
&& ! compexcepttypes (TREE_TYPE (newdecl), TREE_TYPE (olddecl)))
|
||||||
{
|
{
|
||||||
cp_pedwarn ("declaration of `%D' throws different exceptions",
|
cp_pedwarn ("declaration of `%D' throws different exceptions",
|
||||||
|
@ -158,11 +158,10 @@ int warn_ctor_dtor_privacy = 1;
|
|||||||
/* True if we want to implement vtables using "thunks".
|
/* True if we want to implement vtables using "thunks".
|
||||||
The default is off. */
|
The default is off. */
|
||||||
|
|
||||||
#if defined(NEW_OVER) && defined (__i386__)
|
#ifndef DEFAULT_VTABLE_THUNKS
|
||||||
int flag_vtable_thunks = 1;
|
#define DEFAULT_VTABLE_THUNKS 0
|
||||||
#else
|
|
||||||
int flag_vtable_thunks;
|
|
||||||
#endif
|
#endif
|
||||||
|
int flag_vtable_thunks = DEFAULT_VTABLE_THUNKS;
|
||||||
|
|
||||||
/* True if we want to deal with repository information. */
|
/* True if we want to deal with repository information. */
|
||||||
|
|
||||||
@ -246,7 +245,12 @@ int warn_pmf2ptr = 1;
|
|||||||
|
|
||||||
/* Nonzero means warn about violation of some Effective C++ style rules. */
|
/* Nonzero means warn about violation of some Effective C++ style rules. */
|
||||||
|
|
||||||
int warn_ecpp = 0;
|
int warn_ecpp;
|
||||||
|
|
||||||
|
/* Nonzero means warn where overload resolution chooses a promotion from
|
||||||
|
unsigned to signed over a conversion to an unsigned of the same size. */
|
||||||
|
|
||||||
|
int warn_sign_promo;
|
||||||
|
|
||||||
/* Nonzero means `$' can be in an identifier.
|
/* Nonzero means `$' can be in an identifier.
|
||||||
See cccp.c for reasons why this breaks some obscure ANSI C programs. */
|
See cccp.c for reasons why this breaks some obscure ANSI C programs. */
|
||||||
@ -409,6 +413,7 @@ static struct { char *string; int *variable; int on_value;} lang_f_options[] =
|
|||||||
{"all-virtual", &flag_all_virtual, 1},
|
{"all-virtual", &flag_all_virtual, 1},
|
||||||
{"memoize-lookups", &flag_memoize_lookups, 1},
|
{"memoize-lookups", &flag_memoize_lookups, 1},
|
||||||
{"elide-constructors", &flag_elide_constructors, 1},
|
{"elide-constructors", &flag_elide_constructors, 1},
|
||||||
|
{"handle-exceptions", &flag_exceptions, 1},
|
||||||
{"handle-signatures", &flag_handle_signatures, 1},
|
{"handle-signatures", &flag_handle_signatures, 1},
|
||||||
{"default-inline", &flag_default_inline, 1},
|
{"default-inline", &flag_default_inline, 1},
|
||||||
{"dollars-in-identifiers", &dollars_in_ident, 1},
|
{"dollars-in-identifiers", &dollars_in_ident, 1},
|
||||||
@ -470,13 +475,17 @@ lang_decode_option (p)
|
|||||||
p += 2;
|
p += 2;
|
||||||
/* Try special -f options. */
|
/* Try special -f options. */
|
||||||
|
|
||||||
|
if (!strcmp (p, "handle-exceptions")
|
||||||
|
|| !strcmp (p, "no-handle-exceptions"))
|
||||||
|
warning ("-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)");
|
||||||
|
|
||||||
if (!strcmp (p, "save-memoized"))
|
if (!strcmp (p, "save-memoized"))
|
||||||
{
|
{
|
||||||
flag_memoize_lookups = 1;
|
flag_memoize_lookups = 1;
|
||||||
flag_save_memoized_contexts = 1;
|
flag_save_memoized_contexts = 1;
|
||||||
found = 1;
|
found = 1;
|
||||||
}
|
}
|
||||||
if (!strcmp (p, "no-save-memoized"))
|
else if (!strcmp (p, "no-save-memoized"))
|
||||||
{
|
{
|
||||||
flag_memoize_lookups = 0;
|
flag_memoize_lookups = 0;
|
||||||
flag_save_memoized_contexts = 0;
|
flag_save_memoized_contexts = 0;
|
||||||
@ -585,6 +594,8 @@ lang_decode_option (p)
|
|||||||
warn_pmf2ptr = setting;
|
warn_pmf2ptr = setting;
|
||||||
else if (!strcmp (p, "effc++"))
|
else if (!strcmp (p, "effc++"))
|
||||||
warn_ecpp = setting;
|
warn_ecpp = setting;
|
||||||
|
else if (!strcmp (p, "sign-promo"))
|
||||||
|
warn_sign_promo = setting;
|
||||||
else if (!strcmp (p, "comment"))
|
else if (!strcmp (p, "comment"))
|
||||||
; /* cpp handles this one. */
|
; /* cpp handles this one. */
|
||||||
else if (!strcmp (p, "comments"))
|
else if (!strcmp (p, "comments"))
|
||||||
@ -613,6 +624,7 @@ lang_decode_option (p)
|
|||||||
warn_uninitialized = (setting ? 2 : 0);
|
warn_uninitialized = (setting ? 2 : 0);
|
||||||
warn_template_debugging = setting;
|
warn_template_debugging = setting;
|
||||||
warn_reorder = setting;
|
warn_reorder = setting;
|
||||||
|
warn_sign_promo = setting;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (!strcmp (p, "overloaded-virtual"))
|
else if (!strcmp (p, "overloaded-virtual"))
|
||||||
|
@ -20,6 +20,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
|||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "cp-tree.h"
|
#include "cp-tree.h"
|
||||||
#include "obstack.h"
|
#include "obstack.h"
|
||||||
@ -700,6 +701,8 @@ dump_decl (t, v)
|
|||||||
case FUNCTION_DECL:
|
case FUNCTION_DECL:
|
||||||
if (GLOBAL_IORD_P (DECL_ASSEMBLER_NAME (t)))
|
if (GLOBAL_IORD_P (DECL_ASSEMBLER_NAME (t)))
|
||||||
dump_global_iord (DECL_ASSEMBLER_NAME (t));
|
dump_global_iord (DECL_ASSEMBLER_NAME (t));
|
||||||
|
else if (! DECL_LANG_SPECIFIC (t))
|
||||||
|
OB_PUTS ("{internal}");
|
||||||
else
|
else
|
||||||
dump_function_decl (t, v);
|
dump_function_decl (t, v);
|
||||||
break;
|
break;
|
||||||
@ -1388,6 +1391,10 @@ dump_expr (t, nop)
|
|||||||
OB_PUTC (')');
|
OB_PUTC (')');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DEFAULT_ARG:
|
||||||
|
OB_PUTS ("{unparsed}");
|
||||||
|
break;
|
||||||
|
|
||||||
case TREE_LIST:
|
case TREE_LIST:
|
||||||
if (TREE_VALUE (t) && TREE_CODE (TREE_VALUE (t)) == FUNCTION_DECL)
|
if (TREE_VALUE (t) && TREE_CODE (TREE_VALUE (t)) == FUNCTION_DECL)
|
||||||
{
|
{
|
||||||
|
@ -23,6 +23,7 @@ Boston, MA 02111-1307, USA. */
|
|||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "rtl.h"
|
#include "rtl.h"
|
||||||
#include "cp-tree.h"
|
#include "cp-tree.h"
|
||||||
@ -44,8 +45,6 @@ tree builtin_return_address_fndecl;
|
|||||||
static tree BuiltinReturnAddress;
|
static tree BuiltinReturnAddress;
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
easy_expand_asm (str)
|
easy_expand_asm (str)
|
||||||
char *str;
|
char *str;
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
/* Define terminate, unexpected, set_terminate, set_unexpected as
|
/* Define terminate, unexpected, set_terminate, set_unexpected as
|
||||||
well as the default terminate func and default unexpected func. */
|
well as the default terminate func and default unexpected func. */
|
||||||
|
|
||||||
extern terminate_handler __terminate_func;
|
extern terminate_handler __terminate_func __attribute__((__noreturn__));
|
||||||
|
|
||||||
void
|
void
|
||||||
terminate ()
|
terminate ()
|
||||||
|
@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */
|
|||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "rtl.h"
|
#include "rtl.h"
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "flags.h"
|
#include "flags.h"
|
||||||
|
@ -19,6 +19,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
|||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "rtl.h"
|
#include "rtl.h"
|
||||||
#include "cp-tree.h"
|
#include "cp-tree.h"
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
#include "config.h"
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "gansidecl.h"
|
#include "gansidecl.h"
|
||||||
|
|
||||||
/* This bit is set if we saw a `-xfoo' language specification. */
|
/* This bit is set if we saw a `-xfoo' language specification. */
|
||||||
|
@ -22,6 +22,7 @@ Boston, MA 02111-1307, USA. */
|
|||||||
/* High-level class interface. */
|
/* High-level class interface. */
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "rtl.h"
|
#include "rtl.h"
|
||||||
#include "cp-tree.h"
|
#include "cp-tree.h"
|
||||||
|
@ -50,6 +50,8 @@ Boston, MA 02111-1307, USA. */
|
|||||||
"-fno-for-scope",
|
"-fno-for-scope",
|
||||||
"-fgnu-keywords",
|
"-fgnu-keywords",
|
||||||
"-fno-gnu-keywords",
|
"-fno-gnu-keywords",
|
||||||
|
"-fhandle-exceptions",
|
||||||
|
"-fno-handle-exceptions",
|
||||||
"-fhandle-signatures",
|
"-fhandle-signatures",
|
||||||
"-fno-handle-signatures",
|
"-fno-handle-signatures",
|
||||||
"-fhuge-objects",
|
"-fhuge-objects",
|
||||||
@ -104,3 +106,5 @@ Boston, MA 02111-1307, USA. */
|
|||||||
"-Wno-pmf-conversions",
|
"-Wno-pmf-conversions",
|
||||||
"-Weffc++",
|
"-Weffc++",
|
||||||
"-Wno-effc++",
|
"-Wno-effc++",
|
||||||
|
"-Wsign-promo",
|
||||||
|
"-Wno-sign-promo",
|
||||||
|
@ -25,11 +25,11 @@ Boston, MA 02111-1307, USA. */
|
|||||||
/* Cause the `yydebug' variable to be defined. */
|
/* Cause the `yydebug' variable to be defined. */
|
||||||
#define YYDEBUG 1
|
#define YYDEBUG 1
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#include "config.h"
|
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "lex.h"
|
#include "lex.h"
|
||||||
@ -1865,10 +1865,9 @@ do_pending_defargs ()
|
|||||||
defarg_parm = TREE_CHAIN (defarg_parm);
|
defarg_parm = TREE_CHAIN (defarg_parm);
|
||||||
|
|
||||||
for (; defarg_parm; defarg_parm = TREE_CHAIN (defarg_parm))
|
for (; defarg_parm; defarg_parm = TREE_CHAIN (defarg_parm))
|
||||||
if (TREE_PURPOSE (defarg_parm))
|
if (TREE_PURPOSE (defarg_parm)
|
||||||
|
&& TREE_CODE (TREE_PURPOSE (defarg_parm)) == DEFAULT_ARG)
|
||||||
{
|
{
|
||||||
my_friendly_assert (TREE_CODE (TREE_PURPOSE (defarg_parm))
|
|
||||||
== DEFAULT_ARG, 2349);
|
|
||||||
feed_defarg (defarg_fn, defarg_parm);
|
feed_defarg (defarg_fn, defarg_parm);
|
||||||
|
|
||||||
/* Return to the parser, which will process this defarg
|
/* Return to the parser, which will process this defarg
|
||||||
|
@ -26,8 +26,8 @@ Boston, MA 02111-1307, USA. */
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Handle method declarations. */
|
/* Handle method declarations. */
|
||||||
#include <stdio.h>
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "cp-tree.h"
|
#include "cp-tree.h"
|
||||||
#include "class.h"
|
#include "class.h"
|
||||||
@ -1777,6 +1777,7 @@ emit_thunk (thunk_fndecl)
|
|||||||
DECL_RESULT (thunk_fndecl)
|
DECL_RESULT (thunk_fndecl)
|
||||||
= build_decl (RESULT_DECL, 0, integer_type_node);
|
= build_decl (RESULT_DECL, 0, integer_type_node);
|
||||||
fnname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0);
|
fnname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0);
|
||||||
|
init_function_start (thunk_fndecl, input_filename, lineno);
|
||||||
assemble_start_function (thunk_fndecl, fnname);
|
assemble_start_function (thunk_fndecl, fnname);
|
||||||
ASM_OUTPUT_MI_THUNK (asm_out_file, thunk_fndecl, delta, function);
|
ASM_OUTPUT_MI_THUNK (asm_out_file, thunk_fndecl, delta, function);
|
||||||
assemble_end_function (thunk_fndecl, fnname);
|
assemble_end_function (thunk_fndecl, fnname);
|
||||||
|
@ -2227,7 +2227,7 @@ structsp:
|
|||||||
{
|
{
|
||||||
$$.t = $<ttype>6;
|
$$.t = $<ttype>6;
|
||||||
$$.new_type_flag = 1;
|
$$.new_type_flag = 1;
|
||||||
if (current_scope () == current_function_decl)
|
if (current_class_type == NULL_TREE)
|
||||||
clear_inline_text_obstack ();
|
clear_inline_text_obstack ();
|
||||||
}
|
}
|
||||||
| class_head %prec EMPTY
|
| class_head %prec EMPTY
|
||||||
@ -3719,7 +3719,7 @@ function_try_block:
|
|||||||
store_parm_decls ();
|
store_parm_decls ();
|
||||||
expand_start_early_try_stmts ();
|
expand_start_early_try_stmts ();
|
||||||
}
|
}
|
||||||
ctor_initializer_opt compstmt_or_error
|
ctor_initializer_opt compstmt
|
||||||
{ expand_start_all_catch (); }
|
{ expand_start_all_catch (); }
|
||||||
handler_seq
|
handler_seq
|
||||||
{
|
{
|
||||||
|
@ -25,8 +25,8 @@ Boston, MA 02111-1307, USA. */
|
|||||||
The results of the automatic process should be easily reproducible with
|
The results of the automatic process should be easily reproducible with
|
||||||
explicit code. */
|
explicit code. */
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "cp-tree.h"
|
#include "cp-tree.h"
|
||||||
#include "input.h"
|
#include "input.h"
|
||||||
|
@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */
|
|||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
#include "cp-tree.h"
|
#include "cp-tree.h"
|
||||||
#include "flags.h"
|
#include "flags.h"
|
||||||
@ -33,7 +34,7 @@ Boston, MA 02111-1307, USA. */
|
|||||||
|
|
||||||
extern tree define_function ();
|
extern tree define_function ();
|
||||||
extern tree build_t_desc_overload ();
|
extern tree build_t_desc_overload ();
|
||||||
extern struct obstack *permanent_obstack;
|
extern struct obstack permanent_obstack;
|
||||||
|
|
||||||
tree type_info_type_node;
|
tree type_info_type_node;
|
||||||
tree tinfo_fn_id;
|
tree tinfo_fn_id;
|
||||||
|
Loading…
Reference in New Issue
Block a user