public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug analyzer/112378] New: Missing -fanalizer diagnostics with glibc <sys/socket.h> under _GNU_SOURCE
@ 2023-11-04 12:40 rimvydas.jas at gmail dot com
  2023-11-04 12:43 ` [Bug analyzer/112378] " rimvydas.jas at gmail dot com
  0 siblings, 1 reply; 2+ messages in thread
From: rimvydas.jas at gmail dot com @ 2023-11-04 12:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112378

            Bug ID: 112378
           Summary: Missing -fanalizer diagnostics with glibc
                    <sys/socket.h> under _GNU_SOURCE
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: analyzer
          Assignee: dmalcolm at gcc dot gnu.org
          Reporter: rimvydas.jas at gmail dot com
  Target Milestone: ---

Same vanishing diagnostics can be reproduced by running testsuite with:

$ make check-gcc-c -k RUNTESTFLAGS="--target_board=unix/-D_GNU_SOURCE
analyzer.exp"

Running target unix/-D_GNU_SOURCE
FAIL: gcc.dg/analyzer/fd-accept.c  (test for warnings, line 17)
FAIL: gcc.dg/analyzer/fd-accept.c  (test for warnings, line 22)
FAIL: gcc.dg/analyzer/fd-accept.c  (test for warnings, line 23)
FAIL: gcc.dg/analyzer/fd-accept.c  (test for warnings, line 34)
FAIL: gcc.dg/analyzer/fd-accept.c warning (test for warnings, line 57)
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 68)
FAIL: gcc.dg/analyzer/fd-accept.c final event at line 69 (test for warnings,
line 68)
FAIL: gcc.dg/analyzer/fd-bind.c  (test for warnings, line 27)
FAIL: gcc.dg/analyzer/fd-bind.c  (test for warnings, line 28)
FAIL: gcc.dg/analyzer/fd-bind.c warning (test for warnings, line 38)
FAIL: gcc.dg/analyzer/fd-bind.c final event at line 39 (test for warnings, line
38)
FAIL: gcc.dg/analyzer/fd-bind.c warning (test for warnings, line 74)
FAIL: gcc.dg/analyzer/fd-bind.c final event at line 75 (test for warnings, line
74)
FAIL: gcc.dg/analyzer/fd-bind.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-connect.c  (test for warnings, line 20)
FAIL: gcc.dg/analyzer/fd-connect.c  (test for warnings, line 21)
FAIL: gcc.dg/analyzer/fd-connect.c  (test for warnings, line 35)
FAIL: gcc.dg/analyzer/fd-connect.c warning (test for warnings, line 45)
FAIL: gcc.dg/analyzer/fd-connect.c final event at line 46 (test for warnings,
line 45)
FAIL: gcc.dg/analyzer/fd-connect.c (test for excess errors)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 61)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 65)
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 78)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c  (test for warnings, line 94)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c warning (test for warnings, line
109)
FAIL: gcc.dg/analyzer/fd-datagram-socket.c final event at line 110 (test for
warnings, line 109)
FAIL: gcc.dg/analyzer/fd-listen.c  (test for warnings, line 26)
FAIL: gcc.dg/analyzer/fd-listen.c warning (test for warnings, line 33)
FAIL: gcc.dg/analyzer/fd-listen.c final event at line 34 (test for warnings,
line 33)
FAIL: gcc.dg/analyzer/fd-listen.c  (test for warnings, line 43)
FAIL: gcc.dg/analyzer/fd-listen.c warning (test for warnings, line 44)
FAIL: gcc.dg/analyzer/fd-listen.c final event at line 45 (test for warnings,
line 44)
FAIL: gcc.dg/analyzer/fd-listen.c warning (test for warnings, line 64)
FAIL: gcc.dg/analyzer/fd-listen.c final event at line 65 (test for warnings,
line 64)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c warning (test for warnings, line 56)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c final event at line 57 (test for
warnings, line 56)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c  (test for warnings, line 58)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c warning (test for warnings, line 66)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c final event at line 67 (test for
warnings, line 66)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c warning (test for warnings, line 86)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c final event at line 87 (test for
warnings, line 86)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c  (test for warnings, line 93)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c warning (test for warnings, line 100)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c final event at line 101 (test for
warnings, line 100)
FAIL: gcc.dg/analyzer/fd-socket-misuse.c (test for excess errors)
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
33)
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
40)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
62)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
63)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
69)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
70)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
71)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
77)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
94)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
100)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
101)
FAIL: gcc.dg/analyzer/fd-stream-socket-active-open.c  (test for warnings, line
108)
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
35)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
36)
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
42)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
53)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
58)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
59)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
64)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
65)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
66)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
68)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
90)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
91)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
96)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
97)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
98)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
101)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
108)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
113)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
114)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
119)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
120)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
121)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
123)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
147)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
152)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
153)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
157)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
164)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
169)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
170)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
175)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
176)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
177)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
179)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
209)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
210)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
215)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
216)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
217)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
219)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
251)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
252)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
257)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
258)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
259)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
261)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
280)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
281)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
286)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
287)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
288)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
289)
FAIL: gcc.dg/analyzer/fd-stream-socket-passive-open.c  (test for warnings, line
290)
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 59)
FAIL: gcc.dg/analyzer/fd-stream-socket.c  (test for warnings, line 63)
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 76)
FAIL: gcc.dg/analyzer/fd-stream-socket.c  (test for warnings, line 92)
FAIL: gcc.dg/analyzer/fd-stream-socket.c  (test for warnings, line 98)
FAIL: gcc.dg/analyzer/fd-stream-socket.c warning (test for warnings, line 99)
FAIL: gcc.dg/analyzer/fd-stream-socket.c final event at line 100 (test for
warnings, line 99)
FAIL: gcc.dg/analyzer/fd-symbolic-socket.c  (test for warnings, line 59)
FAIL: gcc.dg/analyzer/fd-symbolic-socket.c  (test for warnings, line 63)
FAIL: gcc.dg/analyzer/fd-symbolic-socket.c  (test for warnings, line 70)
FAIL: gcc.dg/analyzer/fd-symbolic-socket.c  (test for warnings, line 76)
FAIL: gcc.dg/analyzer/fd-symbolic-socket.c  (test for warnings, line 98)
FAIL: gcc.dg/analyzer/fd-symbolic-socket.c warning (test for warnings, line 99)
FAIL: gcc.dg/analyzer/fd-symbolic-socket.c msg at line 100 (test for warnings,
line 99)

                === gcc Summary ===

# of expected passes            5554
# of unexpected failures        132
# of expected failures          231
# of unsupported tests          1

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug analyzer/112378] Missing -fanalizer diagnostics with glibc <sys/socket.h> under _GNU_SOURCE
  2023-11-04 12:40 [Bug analyzer/112378] New: Missing -fanalizer diagnostics with glibc <sys/socket.h> under _GNU_SOURCE rimvydas.jas at gmail dot com
@ 2023-11-04 12:43 ` rimvydas.jas at gmail dot com
  0 siblings, 0 replies; 2+ messages in thread
From: rimvydas.jas at gmail dot com @ 2023-11-04 12:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112378

--- Comment #1 from Rimvydas (RJ) <rimvydas.jas at gmail dot com> ---
The -fanalyzer does not seem to handle glibc __CONST_SOCKADDR_ARG definitions
with transparent_unions that are used under -D_GNU_SOURCE (__USE_GNU).

Minimal reduced testcase:
$ cat test_sockaddr.c
struct sockaddr; struct sockaddr_x25;

#if defined __cplusplus || !defined _GNU_SOURCE
# define __CONST_SOCKADDR_ARG   const struct sockaddr *
#else
typedef union {
  const struct sockaddr * __sockaddr__; /* ... */
  const struct sockaddr_x25 * __sockaddr_x25__;
  } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
#endif

extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, unsigned int __len);
extern void __analyzer_eval (int);

void test_null_connect (int fd)
{ __analyzer_eval (connect (fd, 0, 0) == -1); } /* { dg-warning "TRUE" } */

$ ./gcc/xgcc -Bgcc/ -fdiagnostics-plain-output -fanalyzer -c test_sockaddr.c
test_sockaddr.c: In function 'test_null_connect':
test_sockaddr.c:16:3: warning: TRUE
$ ./gcc/xgcc -Bgcc/ -fdiagnostics-plain-output -fanalyzer -c test_sockaddr.c
-D_GNU_SOURCE
test_sockaddr.c: In function 'test_null_connect':
test_sockaddr.c:16:3: warning: UNKNOWN

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-11-04 12:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-04 12:40 [Bug analyzer/112378] New: Missing -fanalizer diagnostics with glibc <sys/socket.h> under _GNU_SOURCE rimvydas.jas at gmail dot com
2023-11-04 12:43 ` [Bug analyzer/112378] " rimvydas.jas at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).