On Thu, Sep 24, 2015 at 11:31:40AM +0200, Thomas Schwinge wrote: > Hi! > > On Sat, 19 Sep 2015 20:55:35 -0400, Trevor Saunders <tbsau...@tbsaunde.org> > wrote: > > On Fri, Sep 18, 2015 at 09:32:37AM -0600, Jeff Law wrote: > > > On 09/18/2015 07:32 AM, Trevor Saunders wrote: > > > >On Wed, Sep 16, 2015 at 03:11:14PM -0400, David Malcolm wrote: > > > >>On Wed, 2015-09-16 at 09:16 -0400, Trevor Saunders wrote: > > > >>>I gave changing from gimple to gimple * a shot last week. > > > ok, its committed now :) > > [...]/source-gcc/gcc/tree-object-size.c:62:13: warning: 'bool > plus_stmt_object_size(object_size_info*, tree, gimple)' declared 'static' but > never defined [-Wunused-function] > static bool plus_stmt_object_size (struct object_size_info *, tree, > gimple); > ^ > [...]/source-gcc/gcc/tree-object-size.c:63:13: warning: 'bool > cond_expr_object_size(object_size_info*, tree, gimple)' declared 'static' but > never defined [-Wunused-function] > static bool cond_expr_object_size (struct object_size_info *, tree, > gimple); > ^ > > Not sure why your automation didn't catch these? Anyway, in r228080 I > now committed these additional changes (as obvious):
well, it wasn't that automated ;) but this does point out some interesting things. > diff --git gcc/tree-object-size.c gcc/tree-object-size.c > index f76f160..230761b 100644 > --- gcc/tree-object-size.c > +++ gcc/tree-object-size.c > @@ -59,8 +59,8 @@ static void collect_object_sizes_for (struct > object_size_info *, tree); > static void expr_object_size (struct object_size_info *, tree, tree); > static bool merge_object_sizes (struct object_size_info *, tree, tree, > unsigned HOST_WIDE_INT); > -static bool plus_stmt_object_size (struct object_size_info *, tree, gimple); > -static bool cond_expr_object_size (struct object_size_info *, tree, gimple); > +static bool plus_stmt_object_size (struct object_size_info *, tree, gimple > *); > +static bool cond_expr_object_size (struct object_size_info *, tree, gimple > *); so, these forward decls aren't actually needed, and I'd be tempted to just remove them, however I was curious why they didn't generate a warning, and I found we regressed the warning for undefined declared static functions. Consider this C++ test case: static bool bar(int); static bool bar(int *p) { return p; } int main() { int x; bar(&x); return 0; } g++ (Debian 5.2.1-17) 5.2.1 20150911 /tmp/test.cc:1:13: warning: ‘bool bar(int)’ declared ‘static’ but never defined [-Wunused-function] static bool bar(int); ^ xgcc (GCC) 6.0.0 20150920 (experimental) bool bar(int*) int main() Analyzing compilation unit Performing interprocedural optimizations <*free_lang_data> <visibility> <build_ssa_passes> <opt_local_passes> <free-inline-summary> <whole-program> <inline>Assembling functions: bool bar(int*) int main() Execution times (seconds) phase setup : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 (50%) wall 1381 kB (76%) ggc phase parsing : 0.00 ( 0%) usr 0.01 (100%) sys 0.00 ( 0%) wall 330 kB (18%) ggc phase opt and generate : 0.01 (100%) usr 0.00 ( 0%) sys 0.01 (50%) wall 95 kB ( 5%) ggc parser (global) : 0.00 ( 0%) usr 0.01 (100%) sys 0.00 ( 0%) wall 311 kB (17%) ggc initialize rtl : 0.01 (100%) usr 0.00 ( 0%) sys 0.01 (50%) wall 12 kB ( 1%) ggc TOTAL : 0.01 0.01 0.02 1818 kB Extra diagnostic checks enabled; compiler may run slowly. Configure with --enable-checking=release to disable checks. I guess I'll try and file a bug about that soon :) Trev