Re: Debian 12 gcc warning

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Debian 12 gcc warning
Дата
Msg-id ZO0/X4ZqGfr6E3ri@momjian.us
обсуждение исходный текст
Ответ на Re: Debian 12 gcc warning  (David Rowley <dgrowleyml@gmail.com>)
Список pgsql-hackers
On Tue, Aug 29, 2023 at 11:55:48AM +1200, David Rowley wrote:
> On Tue, 29 Aug 2023 at 07:37, Bruce Momjian <bruce@momjian.us> wrote:
> >             nargs = 0;
> >             foreach(lc, args)
> >             {
> >                 actual_arg_types[nargs++] = exprType((Node *) lfirst(lc));
> >             }
> 
> Does it still produce the warning if you form the above more like?
> 
> nargs = list_length(args);
> for (int i = 0; i < nargs; i++)
>     actual_arg_types[i] = exprType((Node *) list_nth(args, i));
> 
> I'm just not sure if it's unable to figure out if at least nargs
> elements is set or if it won't be happy until all 100 elements are
> set.

I applied the attached patch but got the same warning:

    clauses.c: In function ‘recheck_cast_function_args’:
    clauses.c:4297:19: warning: ‘actual_arg_types’ may be used uninitialized [-Wmaybe-uninitialized]
     4297 |         rettype = enforce_generic_type_consistency(actual_arg_types,
          |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     4298 |
declared_arg_types,
          |
~~~~~~~~~~~~~~~~~~~
     4299 |                                                                                            nargs,
          |                                                                                            ~~~~~~
     4300 |
funcform->prorettype,
          |
~~~~~~~~~~~~~~~~~~~~~
     4301 |                                                                                            false);
          |                                                                                            ~~~~~~
    In file included from clauses.c:45:
    ../../../../src/include/parser/parse_coerce.h:82:17: note: by argument 1 of type ‘const Oid *’ {aka ‘const unsigned
int*’} to ‘enforce_generic_type_consistency’ declared here
 
       82 | extern Oid      enforce_generic_type_consistency(const Oid *actual_arg_types,
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    clauses.c:4279:33: note: ‘actual_arg_types’ declared here
     4279 |         Oid                     actual_arg_types[FUNC_MAX_ARGS];
          |                                 ^~~~~~~~~~~~~~~~

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Only you can decide what is important to you.

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: David Rowley
Дата:
Сообщение: Re: Debian 12 gcc warning
Следующее
От: Jimmy Yih
Дата:
Сообщение: Re: Should the archiver process always make sure that the timeline history files exist in the archive?