[Bug analyzer/107750] [13/14/15 Regression] Many gcc.dg/analyzer/fd-*.c tests FAIL

2024-06-04 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107750

--- Comment #11 from GCC Commits  ---
The master branch has been updated by Rainer Orth :

https://gcc.gnu.org/g:09ae36461ed34f343f2d8299bad7e394cccf996e

commit r15-1004-g09ae36461ed34f343f2d8299bad7e394cccf996e
Author: Rainer Orth 
Date:   Tue Jun 4 09:04:25 2024 +0200

testsuite: analyzer: Skip tests with non-numeric macros on Solaris
[PR107750]

A couple of gcc.dg/analyzer/fd-*.c tests still FAIL on Solaris.  The
reason is always the same: they use macros that don't expand to simple
numbers, something which c/c-parser.cc
(ana::c_translation_unit::consider_macro) cannot handle:

* :

* :

To avoid the resulting noise, this patch skips the affected tests.

Tested on i386-pc-solaris2.11, sparc-sun-solaris2.11, and
x86_64-pc-linux-gnu.

2024-06-03  Rainer Orth  

gcc/testsuite:
PR analyzer/107750
* gcc.dg/analyzer/fd-accept.c: Skip on *-*-solaris2*.
* gcc.dg/analyzer/fd-access-mode-target-headers.c: Likewise.
* gcc.dg/analyzer/fd-connect.c: Likewise.
* gcc.dg/analyzer/fd-datagram-socket.c: Likewise.
* gcc.dg/analyzer/fd-listen.c: Likewise.
* gcc.dg/analyzer/fd-socket-misuse.c: Likewise.
* gcc.dg/analyzer/fd-stream-socket-active-open.c: Likewise.
* gcc.dg/analyzer/fd-stream-socket-passive-open.c: Likewise.
* gcc.dg/analyzer/fd-stream-socket.c: Likewise.

[Bug analyzer/107750] [13/14/15 Regression] Many gcc.dg/analyzer/fd-*.c tests FAIL

2024-05-21 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107750

Jakub Jelinek  changed:

   What|Removed |Added

   Target Milestone|13.3|13.4

--- Comment #10 from Jakub Jelinek  ---
GCC 13.3 is being released, retargeting bugs to GCC 13.4.

[Bug analyzer/107750] [13/14/15 Regression] Many gcc.dg/analyzer/fd-*.c tests FAIL

2024-05-14 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107750

--- Comment #9 from GCC Commits  ---
The master branch has been updated by Rainer Orth :

https://gcc.gnu.org/g:f97d86f897bcf0ffda4d8d2e5b78a160e9ece140

commit r15-486-gf97d86f897bcf0ffda4d8d2e5b78a160e9ece140
Author: Rainer Orth 
Date:   Tue May 14 16:23:14 2024 +0200

testsuite: analyzer: Fix fd-glibc-byte-stream-connection-server.c on
Solaris [PR107750]

gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c currently FAILs
on Solaris:

FAIL: gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c (test for
excess errors)

Excess errors:
   
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c:91:3:
error: implicit declaration of function 'memset'
[-Wimplicit-function-declaration]

Solaris  has

but no declaration of memset.  While one can argue that this should be
fixed, it's easy enough to just include  instead, which is
what this patch does.

Tested on i386-pc-solaris2.11 and i686-pc-linux-gnu.

2024-05-14  Rainer Orth  

gcc/testsuite:
PR analyzer/107750
* gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c:
Include .

[Bug analyzer/107750] [13/14/15 Regression] Many gcc.dg/analyzer/fd-*.c tests FAIL

2024-05-14 Thread ro at CeBiTec dot Uni-Bielefeld.DE via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107750

--- Comment #8 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
When I hack  locally to avoid the indirection in the
definitions of the SOCK_* constants, only two gcc.dg/analyzer/fd-*.c
tests FAIL on Solaris:

FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
19)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
27)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
32)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
39)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
55)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c (test for excess errors)

Excess errors:
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-access-mode-target-headers.c:55:3:
warning: named constant 'O_ACCMODE' has unknown value

 (included from ) has

#define O_ACCMODE   (O_SEARCH | O_EXEC | 0x3)

which analyzer cannot handle (not a simple numeric constant; same issue
as with SOCK_*).

Linux/glibc has instead

#define O_ACCMODE   0003

FAIL: gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c (test for excess
errors)

Excess errors:
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c:91:3:
error: implicit declaration of function 'memset'
[-Wimplicit-function-declaration]

Solaris  has

#define FD_ZERO(__p)(void) memset((__p), 0, sizeof (*(__p))) 

While one certainly could argue that the header should be
self-contained, it's easy enough to just include  in the test
to avoid this.

[Bug analyzer/107750] [13/14/15 Regression] Many gcc.dg/analyzer/fd-*.c tests FAIL

2024-05-13 Thread ro at CeBiTec dot Uni-Bielefeld.DE via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107750

--- Comment #7 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
I think I've found what's going on:  really has

#if !defined(_XPG4_2) || defined(__EXTENSIONS__)
#ifndef NC_TPI_CLTS
#define NC_TPI_CLTS 1   /* must agree with netconfig.h */
#define NC_TPI_COTS 2   /* must agree with netconfig.h */
[...]
#if !defined(_XPG4_2) || defined(__EXTENSIONS__)
#define SOCK_STREAM NC_TPI_COTS /* stream socket */
#define SOCK_DGRAM  NC_TPI_CLTS /* datagram socket */
[...]
#else
#define SOCK_STREAM 2   /* stream socket */
#define SOCK_DGRAM  1   /* datagram socket */

The problem seems to be the indirection: when SOCK_DGRAM etc. are
defined as numeric constants, things work, while the indirection via
NC_TPI_* does not.

[Bug analyzer/107750] [13/14/15 Regression] Many gcc.dg/analyzer/fd-*.c tests FAIL

2024-05-08 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107750

--- Comment #6 from Rainer Orth  ---
David, after your amazing work on PR analyzer/111475, there are only a handful
of analyzer failures left on trunk:

FAIL: gcc.dg/analyzer/fd-accept.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-accept.c final event at line 58 (test for warnings,
line 57)
FAIL: gcc.dg/analyzer/fd-accept.c warning (test for warnings, line 57)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
19)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
27)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
32)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
39)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c  (test for warnings, line
55)
FAIL: gcc.dg/analyzer/fd-access-mode-target-headers.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-connect.c  (test for warnings, line 35)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 13)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 32)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 38)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 50)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 72)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 83)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 86)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 94)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 98)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c final event at line 110 (test for
warnings, line 109)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c final event at line 88 (test for
warnings, line 87)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c warning (test for warnings, line
109)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c warning (test for warnings, line 87)
FAIL: gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c (test for excess
errors)
FAIL: gcc.dg/analyzer/fd-listen.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-listen.c final event at line 55 (test for warnings,
line 54)
FAIL: gcc.dg/analyzer/fd-listen.c warning (test for warnings, line 54)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c  (test for warnings, line 18)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c final event at line 22 (test for
warnings, line 21)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c warning (test for warnings, line 21)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
21)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
32)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
39)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
47)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
27)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
35)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
41)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
46)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-stream-socket.c  (test for warnings, line 13)
FAIL: gcc.dg/analyzer/fd-stream-socket.c  (test for warnings, line 37)
FAIL: gcc.dg/analyzer/fd-stream-socket.c  (test for warnings, line 70)
FAIL: gcc.dg/analyzer/fd-stream-socket.c  (test for warnings, line 81)
FAIL: gcc.dg/analyzer/fd-stream-socket.c  (test for warnings, line 92)

As an example, I looked into fd-accept.c, which shows those differences between
Linux and Solaris output:

--- /homes/ro/fd-accept.out.i.linux 2024-05-08 13:19:07.595246605 +0200
+++ fd-accept.out.i 2024-05-08 13:23:30.986283368 +0200
@@ -23,2 +23,2 @@
-/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-accept.c:57:3:
warning: ‘accept’ on datagram socket file descriptor ‘fd’
[-Wanalyzer-fd-type-mismatch]
-/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-accept.c:54:12:
note: (1) datagram socket created here
+/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-accept.c:57:3:
warning: ‘accept’ on file descriptor ‘fd’ in wrong phase [CWE-666]
[-Wanalyzer-fd-phase-mismatch]
+/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-accept.c:54:12:
note: (1) socket created here
@@ -28 +28 @@
-/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-accept.c:57:3:
note: (5) ‘accept’ expects a stream socket file descriptor but ‘fd’ is a
datagram socket
+/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/analyzer/fd-accept.c:57:3:
note: (5) ‘accept’ expects a listening stream socket