Re: Debian 12 gcc warning

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Debian 12 gcc warning
Дата
Msg-id ZPip2/KeP7y7RlTJ@momjian.us
обсуждение исходный текст
Ответ на Re: Debian 12 gcc warning  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-hackers
On Wed, Aug 30, 2023 at 11:34:22AM -0400, Bruce Momjian wrote:
> Good news, I was able to prevent the bug by causing compiling of
> clauses.c to use -O2 by adding this to src/Makefile.custom:
> 
>     clauses.o : CFLAGS+=-O2
> 
> Here is my submitted bug report:
> 
>     https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111240

I got this reply on the bug report:

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111240#c5

    Richard Biener 2023-08-31 09:46:44 UTC
    
    Confirmed.
    
    rettype_58 = enforce_generic_type_consistency (&actual_arg_types, &declared_arg_types, 0, _56, 0);
    
    and we reach this on the args == 0 path where indeed actual_arg_types
    is uninitialized and our heuristic says that a const qualified pointer
    is an input and thus might be read.  So you get a maybe-uninitialized
    diagnostic at the call.
    
    GCC doesn't know that the 'nargs' argument relates to the array and
    that at most 'nargs' (zero here) arguments are inspected.
    
    So I think it works as designed, we have some duplicate bugreports
    complaining about this "heuristic".
    
    We are exposing this to ourselves by optimizing the args == 0 case
    (skipping the initialization loop and constant propagating the
    nargs argument).  Aka jump-threading.
    
I think we just have to assume this incorrect warning will be around for
a while.

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

  Only you can decide what is important to you.



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

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Eager page freeze criteria clarification
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Eliminate redundant tuple visibility check in vacuum