Bug Summary

File:objdir/libiberty/conftest.c
Warning:line 143, column 1
Return is prohibited after a successful vfork; call _exit() instead

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-suse-linux -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name conftest.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -analyzer-config-compatibility-mode=true -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/buildworker/marxinbox-gcc-clang-static-analyzer/objdir/libiberty -resource-dir /usr/lib64/clang/15.0.7 -internal-isystem /usr/lib64/clang/15.0.7/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/buildworker/marxinbox-gcc-clang-static-analyzer/objdir/libiberty -ferror-limit 19 -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -analyzer-output=plist-html -analyzer-config silence-checkers=core.NullDereference -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /buildworker/marxinbox-gcc-clang-static-analyzer/objdir/clang-static-analyzer/2023-03-27-141847-20772-1/report-_R5wMw.plist -x c conftest.c
1/* confdefs.h */
2#define PACKAGE_NAME"" ""
3#define PACKAGE_TARNAME"" ""
4#define PACKAGE_VERSION"" ""
5#define PACKAGE_STRING"" ""
6#define PACKAGE_BUGREPORT"" ""
7#define PACKAGE_URL"" ""
8#define STDC_HEADERS1 1
9#define HAVE_SYS_TYPES_H1 1
10#define HAVE_SYS_STAT_H1 1
11#define HAVE_STDLIB_H1 1
12#define HAVE_STRING_H1 1
13#define HAVE_MEMORY_H1 1
14#define HAVE_STRINGS_H1 1
15#define HAVE_INTTYPES_H1 1
16#define HAVE_STDINT_H1 1
17#define HAVE_UNISTD_H1 1
18#define __EXTENSIONS__1 1
19#define _ALL_SOURCE1 1
20#define _GNU_SOURCE1 1
21#define _POSIX_PTHREAD_SEMANTICS1 1
22#define _TANDEM_SOURCE1 1
23#define HAVE_SYS_FILE_H1 1
24#define HAVE_SYS_PARAM_H1 1
25#define HAVE_LIMITS_H1 1
26#define HAVE_STDLIB_H1 1
27#define HAVE_MALLOC_H1 1
28#define HAVE_STRING_H1 1
29#define HAVE_UNISTD_H1 1
30#define HAVE_STRINGS_H1 1
31#define HAVE_SYS_TIME_H1 1
32#define HAVE_TIME_H1 1
33#define HAVE_SYS_RESOURCE_H1 1
34#define HAVE_SYS_STAT_H1 1
35#define HAVE_SYS_MMAN_H1 1
36#define HAVE_FCNTL_H1 1
37#define HAVE_ALLOCA_H1 1
38#define HAVE_SYS_SYSINFO_H1 1
39#define HAVE_STDINT_H1 1
40#define HAVE_STDIO_EXT_H1 1
41#define HAVE_SYS_PRCTL_H1 1
42#define HAVE_SYS_WAIT_H1 1
43#define TIME_WITH_SYS_TIME1 1
44#define SIZEOF_INT4 4
45#define SIZEOF_LONG8 8
46#define SIZEOF_SIZE_T8 8
47#define HAVE_LONG_LONG1 1
48#define SIZEOF_LONG_LONG8 8
49#define UNSIGNED_64BIT_TYPEuint64_t uint64_t
50#define HAVE_INTPTR_T1 1
51#define HAVE_UINTPTR_T1 1
52#define HAVE_UINTPTR_T1 1
53#define HAVE_ASPRINTF1 1
54#define HAVE_ATEXIT1 1
55#define HAVE_BASENAME1 1
56#define HAVE_BCMP1 1
57#define HAVE_BCOPY1 1
58#define HAVE_BSEARCH1 1
59#define HAVE_BZERO1 1
60#define HAVE_CALLOC1 1
61#define HAVE_CLOCK1 1
62#define HAVE_FFS1 1
63#define HAVE_GETCWD1 1
64#define HAVE_GETPAGESIZE1 1
65#define HAVE_GETTIMEOFDAY1 1
66#define HAVE_INDEX1 1
67#define HAVE_INSQUE1 1
68#define HAVE_MEMCHR1 1
69#define HAVE_MEMCMP1 1
70#define HAVE_MEMCPY1 1
71#define HAVE_MEMMEM1 1
72#define HAVE_MEMMOVE1 1
73#define HAVE_MEMPCPY1 1
74#define HAVE_MEMSET1 1
75#define HAVE_MKSTEMPS1 1
76#define HAVE_PUTENV1 1
77#define HAVE_RANDOM1 1
78#define HAVE_RENAME1 1
79#define HAVE_RINDEX1 1
80#define HAVE_SETENV1 1
81#define HAVE_SNPRINTF1 1
82#define HAVE_SIGSETMASK1 1
83#define HAVE_STPCPY1 1
84#define HAVE_STPNCPY1 1
85#define HAVE_STRCASECMP1 1
86#define HAVE_STRCHR1 1
87#define HAVE_STRDUP1 1
88#define HAVE_STRNCASECMP1 1
89#define HAVE_STRNDUP1 1
90#define HAVE_STRNLEN1 1
91#define HAVE_STRRCHR1 1
92#define HAVE_STRSTR1 1
93#define HAVE_STRTOD1 1
94#define HAVE_STRTOL1 1
95#define HAVE_STRTOUL1 1
96#define HAVE_STRTOLL1 1
97#define HAVE_STRTOULL1 1
98#define HAVE_STRVERSCMP1 1
99#define HAVE_TMPNAM1 1
100#define HAVE_VASPRINTF1 1
101#define HAVE_VFPRINTF1 1
102#define HAVE_VPRINTF1 1
103#define HAVE_VSNPRINTF1 1
104#define HAVE_VSPRINTF1 1
105#define HAVE_WAITPID1 1
106#define STACK_DIRECTION1 1
107#define HAVE_FORK1 1
108/* end confdefs.h. */
109/* Define vfork to an innocuous variant, in case <limits.h> declares vfork.
110 For example, HP-UX 11i <limits.h> declares gettimeofday. */
111#define vfork innocuous_vfork
112
113/* System header to define __stub macros and hopefully few prototypes,
114 which can conflict with char vfork (); below.
115 Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
116 <limits.h> exists even on freestanding compilers. */
117
118#ifdef __STDC__1
119# include <limits.h>
120#else
121# include <assert.h>
122#endif
123
124#undef vfork
125
126/* Override any GCC internal prototype to avoid an error.
127 Use char because int might match the return type of a GCC
128 builtin and then its argument prototype would still apply. */
129#ifdef __cplusplus
130extern "C"
131#endif
132char vfork ();
133/* The GNU C library defines this for functions which it implements
134 to always fail with ENOSYS. Some functions are actually named
135 something starting with __ and the normal name is an alias. */
136#if defined __stub_vfork || defined __stub___vfork
137choke me
138#endif
139
140int
141main ()
142{
143return vfork ();
Return is prohibited after a successful vfork; call _exit() instead
144 ;
145 return 0;
146}