mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 14:57:25 +08:00
[multiple changes]
Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br> * lang-options.h: new -Wold-style-cast flag. * cp-tree.h (warn_old_style_cast): new variable. * decl2.c (warn_old_style_cast): ditto. (lang_decode_option): support -Wold-style-cast. (reparse_absdcl_as_casts): produce old-style-cast warning. Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * decl.c (cp_finish_decl): Allow expand_aggr_init to set TREE_USED, reset value based on already_used. * init.c (expand_member_init): Revert change. From-SVN: r15793
This commit is contained in:
parent
974c50f907
commit
0c4b14c4d3
@ -1,3 +1,18 @@
|
||||
Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* lang-options.h: new -Wold-style-cast flag.
|
||||
* cp-tree.h (warn_old_style_cast): new variable.
|
||||
* decl2.c (warn_old_style_cast): ditto.
|
||||
(lang_decode_option): support -Wold-style-cast.
|
||||
(reparse_absdcl_as_casts): produce old-style-cast warning.
|
||||
|
||||
Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
|
||||
|
||||
* decl.c (cp_finish_decl): Allow expand_aggr_init to set
|
||||
TREE_USED, reset value based on already_used.
|
||||
|
||||
* init.c (expand_member_init): Revert change.
|
||||
|
||||
Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* cp-tree.h, decl.c, decl2.c, pt.c:
|
||||
|
@ -257,6 +257,10 @@ extern int warn_sign_promo;
|
||||
|
||||
extern int warn_extern_inline;
|
||||
|
||||
/* Non-zero means warn when an old-style cast is used. */
|
||||
|
||||
extern int warn_old_style_cast;
|
||||
|
||||
/* Nonzero means to treat bitfields as unsigned unless they say `signed'. */
|
||||
|
||||
extern int flag_signed_bitfields;
|
||||
|
@ -6299,6 +6299,7 @@ cp_finish_decl (decl, init, asmspec_tree, need_pop, flags)
|
||||
int temporary = allocation_temporary_p ();
|
||||
char *asmspec = NULL;
|
||||
int was_readonly = 0;
|
||||
int already_used = 0;
|
||||
|
||||
/* If this is 0, then we did not change obstacks. */
|
||||
if (! decl)
|
||||
@ -6858,6 +6859,7 @@ cp_finish_decl (decl, init, asmspec_tree, need_pop, flags)
|
||||
{
|
||||
/* Compute and store the initial value. */
|
||||
expand_decl_init (decl);
|
||||
already_used = TREE_USED (decl) || TREE_USED (type);
|
||||
|
||||
if (init || TYPE_NEEDS_CONSTRUCTING (type))
|
||||
{
|
||||
@ -6870,10 +6872,15 @@ cp_finish_decl (decl, init, asmspec_tree, need_pop, flags)
|
||||
was initialized was ever used. Don't do this if it has a
|
||||
destructor, so we don't complain about the 'resource
|
||||
allocation is initialization' idiom. */
|
||||
|
||||
if (TYPE_NEEDS_CONSTRUCTING (type)
|
||||
&& ! already_used
|
||||
&& cleanup == NULL_TREE
|
||||
&& DECL_NAME (decl))
|
||||
TREE_USED (decl) = 0;
|
||||
|
||||
if (already_used)
|
||||
TREE_USED (decl) = 1;
|
||||
}
|
||||
|
||||
/* Cleanup any temporaries needed for the initial value. */
|
||||
|
@ -268,6 +268,10 @@ int warn_ecpp;
|
||||
|
||||
int warn_sign_promo;
|
||||
|
||||
/* Nonzero means warn when an old-style cast is used. */
|
||||
|
||||
int warn_old_style_cast;
|
||||
|
||||
/* Nonzero means `$' can be in an identifier.
|
||||
See cccp.c for reasons why this breaks some obscure ANSI C programs. */
|
||||
|
||||
@ -649,6 +653,8 @@ lang_decode_option (p)
|
||||
warn_ecpp = setting;
|
||||
else if (!strcmp (p, "sign-promo"))
|
||||
warn_sign_promo = setting;
|
||||
else if (!strcmp (p, "old-style-cast"))
|
||||
warn_old_style_cast = setting;
|
||||
else if (!strcmp (p, "comment"))
|
||||
; /* cpp handles this one. */
|
||||
else if (!strcmp (p, "comments"))
|
||||
@ -3375,6 +3381,9 @@ reparse_absdcl_as_casts (decl, expr)
|
||||
expr = build_c_cast (type, expr);
|
||||
}
|
||||
|
||||
if (warn_old_style_cast)
|
||||
warning ("use of old-style cast");
|
||||
|
||||
return expr;
|
||||
}
|
||||
|
||||
|
@ -111,3 +111,5 @@ Boston, MA 02111-1307, USA. */
|
||||
"-Wno-effc++",
|
||||
"-Wsign-promo",
|
||||
"-Wno-sign-promo",
|
||||
"-Wold-style-cast",
|
||||
"-Wno-old-style-cast",
|
||||
|
Loading…
Reference in New Issue
Block a user