https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106325
Bug ID: 106325 Summary: `analyzer-null-dereference` gets thrown on a parameter on a function marked with `__attribute__((nonnull))` Product: gcc Version: 12.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: alex at zrythm dot org Target Milestone: --- Created attachment 53307 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53307&action=edit corresponding .i file (compressed) for the source file where analyzer produces wrong output When building Zrythm with the analyzer turned on I get false positives for `analyzer-null-dereference` when compiling `src/gui/backend/arranger_object.c` ``` ../src/gui/backend/arranger_object.c:1936:9: エラー: dereference of NULL ‘self’ [CWE-476] [-Werror=analyzer-null-dereference] 1936 | self->is_auditioner ? SAMPLE_PROCESSOR->tracklist : TRACKLIST; ``` `self` is a function parameter and the function is marked with `__attribute__((nonnull))` in the header (`inc/gui/backend/arranger_object.h` so as far as the analyzer is concerned this variable cannot be NULL, so the warning/error is wrong. The value of `self` is never changed within the function either. Here is the relevant info from https://gcc.gnu.org/bugs/ (I also attached the .i file): ``` FAILED: src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o cc -Isrc/libzrythm-lib.so.p -Isrc -I../src -I. -I.. -Iinc -I../inc -Iext -I../ext -Iext/midilib -I../ext/midilib -Iext/whereami -I../ext/whereami -Iext/zix -I../ext/zix -Iext/weakjack -I../ext/weakjack -I../inc/plugins/lv2 -I../subprojects/libcyaml/include -Isubprojects/libaudec -I../subprojects/libaudec -Isubprojects/libaudec/inc -I../subprojects/libaudec/inc -I../subprojects/reproc/reproc/include -Isubprojects/reproc/__CMake_build -I../subprojects/reproc/__CMake_build -Isubprojects/reproc -I../subprojects/reproc -Isubprojects/libbacktrace -I/usr/include/libadwaita-1 -I/usr/include/gtk-4.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/lzo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/graphene-1.0 -I/usr/lib/graphene-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/libpanel-1 -I/usr/include/opus -I/usr/include/graphviz -I/usr/include/guile/2.2 -I/usr/include/carla -I/usr/include/carla/includes -I/usr/include/serd-0 -I/usr/include/sord-0 -I/usr/include/sratom-0 -I/usr/include/lilv-0 -I/usr/include/gtksourceview-5 -I/usr/include/libxml2 -I/usr/include/valgrind -I/home/alex/Documents/git/zrythm/build/subprojects/libbacktrace/dist/home/alex/local/include -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=gnu11 -O0 -g -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_66 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_66 -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_6 -DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_6 -Wno-bad-function-cast -Wno-old-style-declaration -Werror=absolute-value -Wformat=2 -Wno-missing-field-initializers -Wno-unused-parameter -Wno-sequence-point -Wignored-qualifiers -Wno-cast-function-type -Walloca -fno-common -frecord-gcc-switches -march=native -mtune=native -ffast-math -fstrength-reduce -fdata-sections -ffunction-sections -freciprocal-math -fsingle-precision-constant -msse -msse2 -mfpmath=sse -fno-math-errno -fno-omit-frame-pointer -g3 '-DGETTEXT_PACKAGE="zrythm"' -fPIC -pthread -mfpmath=sse -msse -msse2 -DREAL_BUILD -D_REENTRANT -mfpmath=sse -msse -msse2 -mfpmath=sse -msse -msse2 -mfpmath=sse -msse -msse2 -Wformat=2 -Wno-missing-field-initializers -Wno-unused-parameter -Wno-sequence-point -Wignored-qualifiers -Wno-cast-function-type -Walloca -fno-common '-DLV2_UI__Gtk4UI="https://lv2plug.in/ns/extensions/ui#Gtk4UI"' -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED '-D__(x)=x' -DG_LOG_USE_STRUCTURED=1 '-DG_LOG_DOMAIN="zrythm"' -DREALTIME= '-DDEPRECATED_MSG(x)=__attribute__((deprecated(x)))' '-DOPTIMIZE(x)=__attribute__((optimize(#x)))' '-DOPTIMIZE_O0=OPTIMIZE(00)' '-DOPTIMIZE_O1=OPTIMIZE(01)' '-DOPTIMIZE_O2=OPTIMIZE(02)' '-DOPTIMIZE_O3=OPTIMIZE(03)' '-DNONNULL_ARGS(...)=__attribute__((nonnull(__VA_ARGS__)))' '-DACCESS(...)=__attribute__((access(__VA_ARGS__)))' '-DACCESS_READ_ONLY(...)=ACCESS(read_only,__VA_ARGS__)' -frecord-gcc-switches '-DALWAYS_INLINE=__attribute__((always_inline))' '-DCOLD=__attribute__((cold))' '-DHOT=__attribute__((hot))' '-DPURE=__attribute__((pure))' '-DNONNULL=__attribute__((nonnull))' '-DRETURNS_NONNULL=__attribute__((returns_nonnull))' '-DSTACK_PROTECT=__attribute__((stack_protect))' '-DNO_STACK_PROTECTOR=__attribute__((no_stack_protector))' '-DWARN_UNUSED_RESULT=__attribute__((warn_unused_result))' '-DCONST=__attribute__((const))' '-DMALLOC=__attribute__((malloc))' -march=native -mtune=native -ffast-math -fstrength-reduce -DPIC -fdata-sections -ffunction-sections -freciprocal-math -fsingle-precision-constant -msse -msse2 -mfpmath=sse -fno-math-errno -fno-omit-frame-pointer -g3 -Werror=format=2 -Werror=format-overflow -Werror=format-truncation -Werror=clobbered -Werror=disabled-optimization -Werror=float-equal -Werror=logical-op -Werror=pointer-arith -Werror=enum-conversion -Werror=overlength-strings -Werror=stringop-truncation -Werror=missing-declarations -Werror=int-to-pointer-cast -Werror=shadow -Werror=undef -Werror=unused -fstrict-aliasing -Wstrict-aliasing=2 -Werror=strict-aliasing -Wstrict-overflow=2 -fstrict-overflow -Werror=duplicated-branches -Werror=duplicated-cond -Werror=null-dereference -Werror=init-self -Werror=jump-misses-init -Werror=missing-prototypes -Werror=nested-externs -Werror=write-strings -Werror=sign-compare -Werror=discarded-qualifiers -Werror=float-conversion -Werror=implicit-function-declaration -Werror=uninitialized -Werror=maybe-uninitialized -Werror=return-type -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=implicit-int -Werror=multistatement-macros -Werror=switch -Werror=overflow -Werror=array-bounds -Werror=enum-compare -Werror=misleading-indentation -Werror=int-in-bool-context -Werror=type-limits -Werror=deprecated-declarations -Werror=endif-labels -Werror=logical-not-parentheses -Werror=parentheses -Werror=comment -Werror=sizeof-pointer-div -Werror=shift-count-overflow -Werror=free-nonheap-object -fanalyzer -Werror=analyzer-possible-null-dereference -Werror=analyzer-malloc-leak -Werror=analyzer-null-dereference -Werror=analyzer-null-argument -v -save-temps -Werror=analyzer-use-after-free -Werror=analyzer-possible-null-argument -Werror=analyzer-double-free -Werror=analyzer-file-leak -Werror=nonnull -Werror=nonnull-compare -Werror=override-init -Werror=bool-compare -Werror=tautological-compare -Werror=unused-result -Werror=inline -Werror=duplicate-decl-specifier -Werror=redundant-decls -Werror=strict-prototypes -Werror=sizeof-array-argument -Werror=lto-type-mismatch -Werror=odr -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=cold -Werror=sign-conversion -Werror=implicit-fallthrough -MD -MQ src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o -MF src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o.d -o src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o -c ../src/gui/backend/arranger_object.c 組み込み spec を使用しています。 COLLECT_GCC=cc ターゲット: x86_64-pc-linux-gnu configure 設定: /build/gcc/src/gcc/configure --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror --with-build-config=bootstrap-lto --enable-link-serialization=1 スレッドモデル: posix サポートされている LTO 圧縮アルゴリズム: zlib zstd gcc バージョン 12.1.0 (GCC) COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-I' 'src/libzrythm-lib.so.p' '-I' 'src' '-I' '../src' '-I' '.' '-I' '..' '-I' 'inc' '-I' '../inc' '-I' 'ext' '-I' '../ext' '-I' 'ext/midilib' '-I' '../ext/midilib' '-I' 'ext/whereami' '-I' '../ext/whereami' '-I' 'ext/zix' '-I' '../ext/zix' '-I' 'ext/weakjack' '-I' '../ext/weakjack' '-I' '../inc/plugins/lv2' '-I' '../subprojects/libcyaml/include' '-I' 'subprojects/libaudec' '-I' '../subprojects/libaudec' '-I' 'subprojects/libaudec/inc' '-I' '../subprojects/libaudec/inc' '-I' '../subprojects/reproc/reproc/include' '-I' 'subprojects/reproc/__CMake_build' '-I' '../subprojects/reproc/__CMake_build' '-I' 'subprojects/reproc' '-I' '../subprojects/reproc' '-I' 'subprojects/libbacktrace' '-I' '/usr/include/libadwaita-1' '-I' '/usr/include/gtk-4.0' '-I' '/usr/include/pango-1.0' '-I' '/usr/include/glib-2.0' '-I' '/usr/lib/glib-2.0/include' '-I' '/usr/include/sysprof-4' '-I' '/usr/include/harfbuzz' '-I' '/usr/include/freetype2' '-I' '/usr/include/libpng16' '-I' '/usr/include/libmount' '-I' '/usr/include/blkid' '-I' '/usr/include/fribidi' '-I' '/usr/include/cairo' '-I' '/usr/include/lzo' '-I' '/usr/include/pixman-1' '-I' '/usr/include/gdk-pixbuf-2.0' '-I' '/usr/include/graphene-1.0' '-I' '/usr/lib/graphene-1.0/include' '-I' '/usr/include/gio-unix-2.0' '-I' '/usr/include/libpanel-1' '-I' '/usr/include/opus' '-I' '/usr/include/graphviz' '-I' '/usr/include/guile/2.2' '-I' '/usr/include/carla' '-I' '/usr/include/carla/includes' '-I' '/usr/include/serd-0' '-I' '/usr/include/sord-0' '-I' '/usr/include/sratom-0' '-I' '/usr/include/lilv-0' '-I' '/usr/include/gtksourceview-5' '-I' '/usr/include/libxml2' '-I' '/usr/include/valgrind' '-I' '/home/alex/Documents/git/zrythm/build/subprojects/libbacktrace/dist/home/alex/local/include' '-I' '/usr/include/json-glib-1.0' '-D' '_FILE_OFFSET_BITS=64' '-Wall' '-Winvalid-pch' '-Wextra' '-std=gnu11' '-O0' '-g' '-D' 'GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_66' '-D' 'GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_66' '-D' 'GDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_6' '-D' 'GDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_6' '-Wno-bad-function-cast' '-Wno-old-style-declaration' '-Werror=absolute-value' '-Wformat=2' '-mfpmath=sse' '-g3' '-D' 'GETTEXT_PACKAGE="zrythm"' '-fPIC' '-pthread' '-mfpmath=sse' '-D' 'REAL_BUILD' '-D' '_REENTRANT' '-mfpmath=sse' '-mfpmath=sse' '-mfpmath=sse' '-Wformat=2' '-Wno-missing-field-initializers' '-Wno-unused-parameter' '-Wno-sequence-point' '-Wignored-qualifiers' '-Wno-cast-function-type' '-Walloca' '-fno-common' '-D' 'LV2_UI__Gtk4UI="https://lv2plug.in/ns/extensions/ui#Gtk4UI"' '-D' 'GDK_DISABLE_DEPRECATED' '-D' 'GTK_DISABLE_DEPRECATED' '-D' '__(x)=x' '-D' 'G_LOG_USE_STRUCTURED=1' '-D' 'G_LOG_DOMAIN="zrythm"' '-D' 'REALTIME=' '-D' 'DEPRECATED_MSG(x)=__attribute__((deprecated(x)))' '-D' 'OPTIMIZE(x)=__attribute__((optimize(#x)))' '-D' 'OPTIMIZE_O0=OPTIMIZE(00)' '-D' 'OPTIMIZE_O1=OPTIMIZE(01)' '-D' 'OPTIMIZE_O2=OPTIMIZE(02)' '-D' 'OPTIMIZE_O3=OPTIMIZE(03)' '-D' 'NONNULL_ARGS(...)=__attribute__((nonnull(__VA_ARGS__)))' '-D' 'ACCESS(...)=__attribute__((access(__VA_ARGS__)))' '-D' 'ACCESS_READ_ONLY(...)=ACCESS(read_only,__VA_ARGS__)' '-frecord-gcc-switches' '-D' 'ALWAYS_INLINE=__attribute__((always_inline))' '-D' 'COLD=__attribute__((cold))' '-D' 'HOT=__attribute__((hot))' '-D' 'PURE=__attribute__((pure))' '-D' 'NONNULL=__attribute__((nonnull))' '-D' 'RETURNS_NONNULL=__attribute__((returns_nonnull))' '-D' 'STACK_PROTECT=__attribute__((stack_protect))' '-D' 'NO_STACK_PROTECTOR=__attribute__((no_stack_protector))' '-D' 'WARN_UNUSED_RESULT=__attribute__((warn_unused_result))' '-D' 'CONST=__attribute__((const))' '-D' 'MALLOC=__attribute__((malloc))' '-march=native' '-mtune=native' '-ffast-math' '-D' 'PIC' '-fdata-sections' '-ffunction-sections' '-freciprocal-math' '-fsingle-precision-constant' '-msse' '-msse2' '-mfpmath=sse' '-fno-math-errno' '-fno-omit-frame-pointer' '-g3' '-Werror=format=2' '-Werror=format-overflow' '-Werror=format-truncation' '-Werror=clobbered' '-Werror=disabled-optimization' '-Werror=float-equal' '-Werror=logical-op' '-Werror=pointer-arith' '-Werror=enum-conversion' '-Werror=overlength-strings' '-Werror=stringop-truncation' '-Werror=missing-declarations' '-Werror=int-to-pointer-cast' '-Werror=shadow' '-Werror=undef' '-Werror=unused' '-fstrict-aliasing' '-Wstrict-aliasing=2' '-Werror=strict-aliasing' '-Wstrict-overflow=2' '-fstrict-overflow' '-Werror=duplicated-branches' '-Werror=duplicated-cond' '-Werror=null-dereference' '-Werror=init-self' '-Werror=jump-misses-init' '-Werror=missing-prototypes' '-Werror=nested-externs' '-Werror=write-strings' '-Werror=sign-compare' '-Werror=discarded-qualifiers' '-Werror=float-conversion' '-Werror=implicit-function-declaration' '-Werror=uninitialized' '-Werror=maybe-uninitialized' '-Werror=return-type' '-Werror=int-conversion' '-Werror=incompatible-pointer-types' '-Werror=implicit-int' '-Werror=multistatement-macros' '-Werror=switch' '-Werror=overflow' '-Werror=array-bounds' '-Werror=enum-compare' '-Werror=misleading-indentation' '-Werror=int-in-bool-context' '-Werror=type-limits' '-Werror=deprecated-declarations' '-Werror=endif-labels' '-Werror=logical-not-parentheses' '-Werror=parentheses' '-Werror=comment' '-Werror=sizeof-pointer-div' '-Werror=shift-count-overflow' '-Werror=free-nonheap-object' '-fanalyzer' '-Werror=analyzer-possible-null-dereference' '-Werror=analyzer-malloc-leak' '-Werror=analyzer-null-dereference' '-Werror=analyzer-null-argument' '-v' '-save-temps' '-Werror=analyzer-use-after-free' '-Werror=analyzer-possible-null-argument' '-Werror=analyzer-double-free' '-Werror=analyzer-file-leak' '-Werror=nonnull' '-Werror=nonnull-compare' '-Werror=override-init' '-Werror=bool-compare' '-Werror=tautological-compare' '-Werror=unused-result' '-Werror=inline' '-Werror=duplicate-decl-specifier' '-Werror=redundant-decls' '-Werror=strict-prototypes' '-Werror=sizeof-array-argument' '-Werror=lto-type-mismatch' '-Werror=odr' '-Wsuggest-attribute=pure' '-Wsuggest-attribute=const' '-Wsuggest-attribute=noreturn' '-Wsuggest-attribute=format' '-Wsuggest-attribute=malloc' '-Wsuggest-attribute=cold' '-Werror=sign-conversion' '-Werror=implicit-fallthrough' '-MD' '-MQ' 'src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o' '-MF' 'src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o.d' '-o' 'src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o' '-c' '-dumpdir' 'src/libzrythm-lib.so.p/' /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/cc1 -E -quiet -v -I src/libzrythm-lib.so.p -I src -I ../src -I . -I .. -I inc -I ../inc -I ext -I ../ext -I ext/midilib -I ../ext/midilib -I ext/whereami -I ../ext/whereami -I ext/zix -I ../ext/zix -I ext/weakjack -I ../ext/weakjack -I ../inc/plugins/lv2 -I ../subprojects/libcyaml/include -I subprojects/libaudec -I ../subprojects/libaudec -I subprojects/libaudec/inc -I ../subprojects/libaudec/inc -I ../subprojects/reproc/reproc/include -I subprojects/reproc/__CMake_build -I ../subprojects/reproc/__CMake_build -I subprojects/reproc -I ../subprojects/reproc -I subprojects/libbacktrace -I /usr/include/libadwaita-1 -I /usr/include/gtk-4.0 -I /usr/include/pango-1.0 -I /usr/include/glib-2.0 -I /usr/lib/glib-2.0/include -I /usr/include/sysprof-4 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/libpng16 -I /usr/include/libmount -I /usr/include/blkid -I /usr/include/fribidi -I /usr/include/cairo -I /usr/include/lzo -I /usr/include/pixman-1 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/graphene-1.0 -I /usr/lib/graphene-1.0/include -I /usr/include/gio-unix-2.0 -I /usr/include/libpanel-1 -I /usr/include/opus -I /usr/include/graphviz -I /usr/include/guile/2.2 -I /usr/include/carla -I /usr/include/carla/includes -I /usr/include/serd-0 -I /usr/include/sord-0 -I /usr/include/sratom-0 -I /usr/include/lilv-0 -I /usr/include/gtksourceview-5 -I /usr/include/libxml2 -I /usr/include/valgrind -I /home/alex/Documents/git/zrythm/build/subprojects/libbacktrace/dist/home/alex/local/include -I /usr/include/json-glib-1.0 -MD src/libzrythm-lib.so.p/gui_backend_arranger_object.c.d -MF src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o.d -MQ src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o -dD -D_REENTRANT -D _FILE_OFFSET_BITS=64 -D GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_66 -D GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_66 -D GDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_6 -D GDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_6 -D GETTEXT_PACKAGE="zrythm" -D REAL_BUILD -D _REENTRANT -D LV2_UI__Gtk4UI="https://lv2plug.in/ns/extensions/ui#Gtk4UI" -D GDK_DISABLE_DEPRECATED -D GTK_DISABLE_DEPRECATED -D __(x)=x -D G_LOG_USE_STRUCTURED=1 -D G_LOG_DOMAIN="zrythm" -D REALTIME= -D DEPRECATED_MSG(x)=__attribute__((deprecated(x))) -D OPTIMIZE(x)=__attribute__((optimize(#x))) -D OPTIMIZE_O0=OPTIMIZE(00) -D OPTIMIZE_O1=OPTIMIZE(01) -D OPTIMIZE_O2=OPTIMIZE(02) -D OPTIMIZE_O3=OPTIMIZE(03) -D NONNULL_ARGS(...)=__attribute__((nonnull(__VA_ARGS__))) -D ACCESS(...)=__attribute__((access(__VA_ARGS__))) -D ACCESS_READ_ONLY(...)=ACCESS(read_only,__VA_ARGS__) -D ALWAYS_INLINE=__attribute__((always_inline)) -D COLD=__attribute__((cold)) -D HOT=__attribute__((hot)) -D PURE=__attribute__((pure)) -D NONNULL=__attribute__((nonnull)) -D RETURNS_NONNULL=__attribute__((returns_nonnull)) -D STACK_PROTECT=__attribute__((stack_protect)) -D NO_STACK_PROTECTOR=__attribute__((no_stack_protector)) -D WARN_UNUSED_RESULT=__attribute__((warn_unused_result)) -D CONST=__attribute__((const)) -D MALLOC=__attribute__((malloc)) -D PIC ../src/gui/backend/arranger_object.c -march=znver3 -mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -msse4a -mno-fma4 -mno-xop -mfma -mno-avx512f -mbmi -mbmi2 -maes -mpclmul -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512cd -mno-avx512er -mno-avx512pf -mno-avx512vbmi -mno-avx512ifma -mno-avx5124vnniw -mno-avx5124fmaps -mno-avx512vpopcntdq -mno-avx512vbmi2 -mno-gfni -mvpclmulqdq -mno-avx512vnni -mno-avx512bitalg -mno-avx512bf16 -mno-avx512vp2intersect -mno-3dnow -madx -mabm -mno-cldemote -mclflushopt -mclwb -mclzero -mcx16 -mno-enqcmd -mf16c -mfsgsbase -mfxsr -mno-hle -msahf -mno-lwp -mlzcnt -mmovbe -mno-movdir64b -mno-movdiri -mmwaitx -mno-pconfig -mpku -mno-prefetchwt1 -mprfchw -mno-ptwrite -mrdpid -mrdrnd -mrdseed -mno-rtm -mno-serialize -mno-sgx -msha -mshstk -mno-tbm -mno-tsxldtrk -mvaes -mno-waitpkg -mwbnoinvd -mxsave -mxsavec -mxsaveopt -mxsaves -mno-amx-tile -mno-amx-int8 -mno-amx-bf16 -mno-uintr -mno-hreset -mno-kl -mno-widekl -mno-avxvnni -mno-avx512fp16 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=znver3 -mfpmath=sse -mfpmath=sse -mfpmath=sse -mfpmath=sse -mfpmath=sse -msse -msse2 -mfpmath=sse -std=gnu11 -Wall -Winvalid-pch -Wextra -Wno-bad-function-cast -Wno-old-style-declaration -Werror=absolute-value -Wformat=2 -Wformat=2 -Wno-missing-field-initializers -Wno-unused-parameter -Wno-sequence-point -Wignored-qualifiers -Wno-cast-function-type -Walloca -Werror=format=2 -Werror=format-overflow -Werror=format-truncation -Werror=clobbered -Werror=disabled-optimization -Werror=float-equal -Werror=logical-op -Werror=pointer-arith -Werror=enum-conversion -Werror=overlength-strings -Werror=stringop-truncation -Werror=missing-declarations -Werror=int-to-pointer-cast -Werror=shadow -Werror=undef -Werror=unused -Wstrict-aliasing=2 -Werror=strict-aliasing -Wstrict-overflow=2 -Werror=duplicated-branches -Werror=duplicated-cond -Werror=null-dereference -Werror=init-self -Werror=jump-misses-init -Werror=missing-prototypes -Werror=nested-externs -Werror=write-strings -Werror=sign-compare -Werror=discarded-qualifiers -Werror=float-conversion -Werror=implicit-function-declaration -Werror=uninitialized -Werror=maybe-uninitialized -Werror=return-type -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=implicit-int -Werror=multistatement-macros -Werror=switch -Werror=overflow -Werror=array-bounds -Werror=enum-compare -Werror=misleading-indentation -Werror=int-in-bool-context -Werror=type-limits -Werror=deprecated-declarations -Werror=endif-labels -Werror=logical-not-parentheses -Werror=parentheses -Werror=comment -Werror=sizeof-pointer-div -Werror=shift-count-overflow -Werror=free-nonheap-object -Werror=analyzer-possible-null-dereference -Werror=analyzer-malloc-leak -Werror=analyzer-null-dereference -Werror=analyzer-null-argument -Werror=analyzer-use-after-free -Werror=analyzer-possible-null-argument -Werror=analyzer-double-free -Werror=analyzer-file-leak -Werror=nonnull -Werror=nonnull-compare -Werror=override-init -Werror=bool-compare -Werror=tautological-compare -Werror=unused-result -Werror=inline -Werror=duplicate-decl-specifier -Werror=redundant-decls -Werror=strict-prototypes -Werror=sizeof-array-argument -Werror=lto-type-mismatch -Werror=odr -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=cold -Werror=sign-conversion -Werror=implicit-fallthrough -fdiagnostics-color=always -fPIC -fno-common -frecord-gcc-switches -ffast-math -fdata-sections -ffunction-sections -freciprocal-math -fsingle-precision-constant -fno-math-errno -fno-omit-frame-pointer -fstrict-aliasing -fstrict-overflow -fanalyzer -g -g3 -g3 -fworking-directory -O0 -fpch-preprocess -o src/libzrythm-lib.so.p/gui_backend_arranger_object.c.i 存在しないディレクトリ "/usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/../../../../x86_64-pc-linux-gnu/include" を無視します 存在しないディレクトリ "../subprojects/reproc/__CMake_build" を無視します #include "..." の探索はここから始まります: #include <...> の探索はここから始まります: src/libzrythm-lib.so.p src ../src . .. inc ../inc ext ../ext ext/midilib ../ext/midilib ext/whereami ../ext/whereami ext/zix ../ext/zix ext/weakjack ../ext/weakjack ../inc/plugins/lv2 ../subprojects/libcyaml/include subprojects/libaudec ../subprojects/libaudec subprojects/libaudec/inc ../subprojects/libaudec/inc ../subprojects/reproc/reproc/include subprojects/reproc/__CMake_build subprojects/reproc ../subprojects/reproc subprojects/libbacktrace /usr/include/libadwaita-1 /usr/include/gtk-4.0 /usr/include/pango-1.0 /usr/include/glib-2.0 /usr/lib/glib-2.0/include /usr/include/sysprof-4 /usr/include/harfbuzz /usr/include/freetype2 /usr/include/libpng16 /usr/include/libmount /usr/include/blkid /usr/include/fribidi /usr/include/cairo /usr/include/lzo /usr/include/pixman-1 /usr/include/gdk-pixbuf-2.0 /usr/include/graphene-1.0 /usr/lib/graphene-1.0/include /usr/include/gio-unix-2.0 /usr/include/libpanel-1 /usr/include/opus /usr/include/graphviz /usr/include/guile/2.2 /usr/include/carla /usr/include/carla/includes /usr/include/serd-0 /usr/include/sord-0 /usr/include/sratom-0 /usr/include/lilv-0 /usr/include/gtksourceview-5 /usr/include/libxml2 /usr/include/valgrind /home/alex/Documents/git/zrythm/build/subprojects/libbacktrace/dist/home/alex/local/include /usr/include/json-glib-1.0 /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/include /usr/local/include /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/include-fixed /usr/include 探索リストの終わりです。 COLLECT_GCC_OPTIONS='-fdiagnostics-color=always' '-I' 'src/libzrythm-lib.so.p' '-I' 'src' '-I' '../src' '-I' '.' '-I' '..' '-I' 'inc' '-I' '../inc' '-I' 'ext' '-I' '../ext' '-I' 'ext/midilib' '-I' '../ext/midilib' '-I' 'ext/whereami' '-I' '../ext/whereami' '-I' 'ext/zix' '-I' '../ext/zix' '-I' 'ext/weakjack' '-I' '../ext/weakjack' '-I' '../inc/plugins/lv2' '-I' '../subprojects/libcyaml/include' '-I' 'subprojects/libaudec' '-I' '../subprojects/libaudec' '-I' 'subprojects/libaudec/inc' '-I' '../subprojects/libaudec/inc' '-I' '../subprojects/reproc/reproc/include' '-I' 'subprojects/reproc/__CMake_build' '-I' '../subprojects/reproc/__CMake_build' '-I' 'subprojects/reproc' '-I' '../subprojects/reproc' '-I' 'subprojects/libbacktrace' '-I' '/usr/include/libadwaita-1' '-I' '/usr/include/gtk-4.0' '-I' '/usr/include/pango-1.0' '-I' '/usr/include/glib-2.0' '-I' '/usr/lib/glib-2.0/include' '-I' '/usr/include/sysprof-4' '-I' '/usr/include/harfbuzz' '-I' '/usr/include/freetype2' '-I' '/usr/include/libpng16' '-I' '/usr/include/libmount' '-I' '/usr/include/blkid' '-I' '/usr/include/fribidi' '-I' '/usr/include/cairo' '-I' '/usr/include/lzo' '-I' '/usr/include/pixman-1' '-I' '/usr/include/gdk-pixbuf-2.0' '-I' '/usr/include/graphene-1.0' '-I' '/usr/lib/graphene-1.0/include' '-I' '/usr/include/gio-unix-2.0' '-I' '/usr/include/libpanel-1' '-I' '/usr/include/opus' '-I' '/usr/include/graphviz' '-I' '/usr/include/guile/2.2' '-I' '/usr/include/carla' '-I' '/usr/include/carla/includes' '-I' '/usr/include/serd-0' '-I' '/usr/include/sord-0' '-I' '/usr/include/sratom-0' '-I' '/usr/include/lilv-0' '-I' '/usr/include/gtksourceview-5' '-I' '/usr/include/libxml2' '-I' '/usr/include/valgrind' '-I' '/home/alex/Documents/git/zrythm/build/subprojects/libbacktrace/dist/home/alex/local/include' '-I' '/usr/include/json-glib-1.0' '-D' '_FILE_OFFSET_BITS=64' '-Wall' '-Winvalid-pch' '-Wextra' '-std=gnu11' '-O0' '-g' '-D' 'GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_66' '-D' 'GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_66' '-D' 'GDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_6' '-D' 'GDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_6' '-Wno-bad-function-cast' '-Wno-old-style-declaration' '-Werror=absolute-value' '-Wformat=2' '-mfpmath=sse' '-g3' '-D' 'GETTEXT_PACKAGE="zrythm"' '-fPIC' '-pthread' '-mfpmath=sse' '-D' 'REAL_BUILD' '-D' '_REENTRANT' '-mfpmath=sse' '-mfpmath=sse' '-mfpmath=sse' '-Wformat=2' '-Wno-missing-field-initializers' '-Wno-unused-parameter' '-Wno-sequence-point' '-Wignored-qualifiers' '-Wno-cast-function-type' '-Walloca' '-fno-common' '-D' 'LV2_UI__Gtk4UI="https://lv2plug.in/ns/extensions/ui#Gtk4UI"' '-D' 'GDK_DISABLE_DEPRECATED' '-D' 'GTK_DISABLE_DEPRECATED' '-D' '__(x)=x' '-D' 'G_LOG_USE_STRUCTURED=1' '-D' 'G_LOG_DOMAIN="zrythm"' '-D' 'REALTIME=' '-D' 'DEPRECATED_MSG(x)=__attribute__((deprecated(x)))' '-D' 'OPTIMIZE(x)=__attribute__((optimize(#x)))' '-D' 'OPTIMIZE_O0=OPTIMIZE(00)' '-D' 'OPTIMIZE_O1=OPTIMIZE(01)' '-D' 'OPTIMIZE_O2=OPTIMIZE(02)' '-D' 'OPTIMIZE_O3=OPTIMIZE(03)' '-D' 'NONNULL_ARGS(...)=__attribute__((nonnull(__VA_ARGS__)))' '-D' 'ACCESS(...)=__attribute__((access(__VA_ARGS__)))' '-D' 'ACCESS_READ_ONLY(...)=ACCESS(read_only,__VA_ARGS__)' '-frecord-gcc-switches' '-D' 'ALWAYS_INLINE=__attribute__((always_inline))' '-D' 'COLD=__attribute__((cold))' '-D' 'HOT=__attribute__((hot))' '-D' 'PURE=__attribute__((pure))' '-D' 'NONNULL=__attribute__((nonnull))' '-D' 'RETURNS_NONNULL=__attribute__((returns_nonnull))' '-D' 'STACK_PROTECT=__attribute__((stack_protect))' '-D' 'NO_STACK_PROTECTOR=__attribute__((no_stack_protector))' '-D' 'WARN_UNUSED_RESULT=__attribute__((warn_unused_result))' '-D' 'CONST=__attribute__((const))' '-D' 'MALLOC=__attribute__((malloc))' '-march=native' '-mtune=native' '-ffast-math' '-D' 'PIC' '-fdata-sections' '-ffunction-sections' '-freciprocal-math' '-fsingle-precision-constant' '-msse' '-msse2' '-mfpmath=sse' '-fno-math-errno' '-fno-omit-frame-pointer' '-g3' '-Werror=format=2' '-Werror=format-overflow' '-Werror=format-truncation' '-Werror=clobbered' '-Werror=disabled-optimization' '-Werror=float-equal' '-Werror=logical-op' '-Werror=pointer-arith' '-Werror=enum-conversion' '-Werror=overlength-strings' '-Werror=stringop-truncation' '-Werror=missing-declarations' '-Werror=int-to-pointer-cast' '-Werror=shadow' '-Werror=undef' '-Werror=unused' '-fstrict-aliasing' '-Wstrict-aliasing=2' '-Werror=strict-aliasing' '-Wstrict-overflow=2' '-fstrict-overflow' '-Werror=duplicated-branches' '-Werror=duplicated-cond' '-Werror=null-dereference' '-Werror=init-self' '-Werror=jump-misses-init' '-Werror=missing-prototypes' '-Werror=nested-externs' '-Werror=write-strings' '-Werror=sign-compare' '-Werror=discarded-qualifiers' '-Werror=float-conversion' '-Werror=implicit-function-declaration' '-Werror=uninitialized' '-Werror=maybe-uninitialized' '-Werror=return-type' '-Werror=int-conversion' '-Werror=incompatible-pointer-types' '-Werror=implicit-int' '-Werror=multistatement-macros' '-Werror=switch' '-Werror=overflow' '-Werror=array-bounds' '-Werror=enum-compare' '-Werror=misleading-indentation' '-Werror=int-in-bool-context' '-Werror=type-limits' '-Werror=deprecated-declarations' '-Werror=endif-labels' '-Werror=logical-not-parentheses' '-Werror=parentheses' '-Werror=comment' '-Werror=sizeof-pointer-div' '-Werror=shift-count-overflow' '-Werror=free-nonheap-object' '-fanalyzer' '-Werror=analyzer-possible-null-dereference' '-Werror=analyzer-malloc-leak' '-Werror=analyzer-null-dereference' '-Werror=analyzer-null-argument' '-v' '-save-temps' '-Werror=analyzer-use-after-free' '-Werror=analyzer-possible-null-argument' '-Werror=analyzer-double-free' '-Werror=analyzer-file-leak' '-Werror=nonnull' '-Werror=nonnull-compare' '-Werror=override-init' '-Werror=bool-compare' '-Werror=tautological-compare' '-Werror=unused-result' '-Werror=inline' '-Werror=duplicate-decl-specifier' '-Werror=redundant-decls' '-Werror=strict-prototypes' '-Werror=sizeof-array-argument' '-Werror=lto-type-mismatch' '-Werror=odr' '-Wsuggest-attribute=pure' '-Wsuggest-attribute=const' '-Wsuggest-attribute=noreturn' '-Wsuggest-attribute=format' '-Wsuggest-attribute=malloc' '-Wsuggest-attribute=cold' '-Werror=sign-conversion' '-Werror=implicit-fallthrough' '-MD' '-MQ' 'src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o' '-MF' 'src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o.d' '-o' 'src/libzrythm-lib.so.p/gui_backend_arranger_object.c.o' '-c' '-dumpdir' 'src/libzrythm-lib.so.p/' /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/cc1 -fpreprocessed src/libzrythm-lib.so.p/gui_backend_arranger_object.c.i -march=znver3 -mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -msse4a -mno-fma4 -mno-xop -mfma -mno-avx512f -mbmi -mbmi2 -maes -mpclmul -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512cd -mno-avx512er -mno-avx512pf -mno-avx512vbmi -mno-avx512ifma -mno-avx5124vnniw -mno-avx5124fmaps -mno-avx512vpopcntdq -mno-avx512vbmi2 -mno-gfni -mvpclmulqdq -mno-avx512vnni -mno-avx512bitalg -mno-avx512bf16 -mno-avx512vp2intersect -mno-3dnow -madx -mabm -mno-cldemote -mclflushopt -mclwb -mclzero -mcx16 -mno-enqcmd -mf16c -mfsgsbase -mfxsr -mno-hle -msahf -mno-lwp -mlzcnt -mmovbe -mno-movdir64b -mno-movdiri -mmwaitx -mno-pconfig -mpku -mno-prefetchwt1 -mprfchw -mno-ptwrite -mrdpid -mrdrnd -mrdseed -mno-rtm -mno-serialize -mno-sgx -msha -mshstk -mno-tbm -mno-tsxldtrk -mvaes -mno-waitpkg -mwbnoinvd -mxsave -mxsavec -mxsaveopt -mxsaves -mno-amx-tile -mno-amx-int8 -mno-amx-bf16 -mno-uintr -mno-hreset -mno-kl -mno-widekl -mno-avxvnni -mno-avx512fp16 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=znver3 -quiet -dumpdir src/libzrythm-lib.so.p/ -dumpbase gui_backend_arranger_object.c.c -dumpbase-ext .c -mfpmath=sse -mfpmath=sse -mfpmath=sse -mfpmath=sse -mfpmath=sse -msse -msse2 -mfpmath=sse -g -g3 -g3 -O0 -Wall -Winvalid-pch -Wextra -Wno-bad-function-cast -Wno-old-style-declaration -Werror=absolute-value -Wformat=2 -Wformat=2 -Wno-missing-field-initializers -Wno-unused-parameter -Wno-sequence-point -Wignored-qualifiers -Wno-cast-function-type -Walloca -Werror=format=2 -Werror=format-overflow -Werror=format-truncation -Werror=clobbered -Werror=disabled-optimization -Werror=float-equal -Werror=logical-op -Werror=pointer-arith -Werror=enum-conversion -Werror=overlength-strings -Werror=stringop-truncation -Werror=missing-declarations -Werror=int-to-pointer-cast -Werror=shadow -Werror=undef -Werror=unused -Wstrict-aliasing=2 -Werror=strict-aliasing -Wstrict-overflow=2 -Werror=duplicated-branches -Werror=duplicated-cond -Werror=null-dereference -Werror=init-self -Werror=jump-misses-init -Werror=missing-prototypes -Werror=nested-externs -Werror=write-strings -Werror=sign-compare -Werror=discarded-qualifiers -Werror=float-conversion -Werror=implicit-function-declaration -Werror=uninitialized -Werror=maybe-uninitialized -Werror=return-type -Werror=int-conversion -Werror=incompatible-pointer-types -Werror=implicit-int -Werror=multistatement-macros -Werror=switch -Werror=overflow -Werror=array-bounds -Werror=enum-compare -Werror=misleading-indentation -Werror=int-in-bool-context -Werror=type-limits -Werror=deprecated-declarations -Werror=endif-labels -Werror=logical-not-parentheses -Werror=parentheses -Werror=comment -Werror=sizeof-pointer-div -Werror=shift-count-overflow -Werror=free-nonheap-object -Werror=analyzer-possible-null-dereference -Werror=analyzer-malloc-leak -Werror=analyzer-null-dereference -Werror=analyzer-null-argument -Werror=analyzer-use-after-free -Werror=analyzer-possible-null-argument -Werror=analyzer-double-free -Werror=analyzer-file-leak -Werror=nonnull -Werror=nonnull-compare -Werror=override-init -Werror=bool-compare -Werror=tautological-compare -Werror=unused-result -Werror=inline -Werror=duplicate-decl-specifier -Werror=redundant-decls -Werror=strict-prototypes -Werror=sizeof-array-argument -Werror=lto-type-mismatch -Werror=odr -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn -Wsuggest-attribute=format -Wsuggest-attribute=malloc -Wsuggest-attribute=cold -Werror=sign-conversion -Werror=implicit-fallthrough -std=gnu11 -version -fdiagnostics-color=always -fPIC -fno-common -frecord-gcc-switches -ffast-math -fdata-sections -ffunction-sections -freciprocal-math -fsingle-precision-constant -fno-math-errno -fno-omit-frame-pointer -fstrict-aliasing -fstrict-overflow -fanalyzer -o src/libzrythm-lib.so.p/gui_backend_arranger_object.c.s GNU C11 (GCC) version 12.1.0 (x86_64-pc-linux-gnu) compiled by GNU C version 12.1.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.25-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C11 (GCC) version 12.1.0 (x86_64-pc-linux-gnu) compiled by GNU C version 12.1.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.25-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 3e6a47a96552b6758214eb71bda8ede7 ../src/gui/backend/arranger_object.c: 関数 ‘arranger_object_get_track’ 内: ../src/gui/backend/arranger_object.c:1936:9: エラー: dereference of NULL ‘self’ [CWE-476] [-Werror=analyzer-null-dereference] 1936 | self->is_auditioner ? SAMPLE_PROCESSOR->tracklist : TRACKLIST; | ~~~~^~~~~~~~~~~~~~~ ‘arranger_object_unsplit’: event 1 | |../src/gui/backend/arranger_object.c:3021:1: | 3021 | arranger_object_unsplit ( | | ^~~~~~~~~~~~~~~~~~~~~~~ | | | | | (1) entry to ‘arranger_object_unsplit’ | ‘arranger_object_unsplit’: event 2 | |../src/gui/backend/arranger_object.c:3043:10: | 3043 | *obj = arranger_object_clone (r1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (2) calling ‘arranger_object_clone’ from ‘arranger_object_unsplit’ | +--> ‘arranger_object_clone’: events 3-6 | |../src/gui/backend/arranger_object.c:2568:1: | 2568 | arranger_object_clone (const ArrangerObject * self) | | ^~~~~~~~~~~~~~~~~~~~~ | | | | | (3) entry to ‘arranger_object_clone’ | 2569 | { | 2570 | g_return_val_if_fail (self, NULL); | | ~ ~~~~~~ | | | | | | | | (5) ...to here (6) ‘r1’ is NULL | | (4) following ‘false’ branch (when ‘self’ is NULL)... | <------+ | ‘arranger_object_unsplit’: events 7-8 | |../src/gui/backend/arranger_object.c:3043:10: | 3043 | *obj = arranger_object_clone (r1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (7) returning to ‘arranger_object_unsplit’ from ‘arranger_object_clone’ |...... | 3047 | arranger_object_end_pos_setter (*obj, &r2->end_pos); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (8) calling ‘arranger_object_end_pos_setter’ from ‘arranger_object_unsplit’ | +--> ‘arranger_object_end_pos_setter’: events 9-10 | |../src/gui/backend/arranger_object.c:1752:1: | 1752 | arranger_object_end_pos_setter ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (9) entry to ‘arranger_object_end_pos_setter’ |...... | 1756 | arranger_object_set_position ( | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (10) calling ‘arranger_object_set_position’ from ‘arranger_object_end_pos_setter’ | 1757 | self, pos, ARRANGER_OBJECT_POSITION_TYPE_END, F_VALIDATE); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | +--> ‘arranger_object_set_position’: events 11-13 | |../src/gui/backend/arranger_object.c:675:1: | 675 | arranger_object_set_position ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (11) entry to ‘arranger_object_set_position’ |...... | 681 | g_return_if_fail (self && pos); | | ~ | | | | | | | (13) ...to here | | (12) following ‘false’ branch (when ‘self’ is NULL)... | <------+ | ‘arranger_object_end_pos_setter’: event 14 | |../src/gui/backend/arranger_object.c:1756:3: | 1756 | arranger_object_set_position ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (14) returning to ‘arranger_object_end_pos_setter’ from ‘arranger_object_set_position’ | 1757 | self, pos, ARRANGER_OBJECT_POSITION_TYPE_END, F_VALIDATE); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | <------+ | ‘arranger_object_unsplit’: events 15-19 | |../src/gui/backend/arranger_object.c:3047:3: | 3047 | arranger_object_end_pos_setter (*obj, &r2->end_pos); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (15) returning to ‘arranger_object_unsplit’ from ‘arranger_object_end_pos_setter’ |...... | 3056 | switch (r1->type) | | ~~~~~~ ~~~~~~~~ | | | | | | | (16) state of ‘INIT_VAL(r1_80(D))’: ‘null’ -> ‘stop’ (NULL origin) | | (17) following ‘case 2:’ branch... | 3057 | { | 3058 | case ARRANGER_OBJECT_TYPE_REGION: | | ~~~~ | | | | | (18) ...to here |...... | 3061 | AutomationTrack * at = NULL; | | ~~ | | | | | (19) ‘r1’ is NULL | ‘arranger_object_unsplit’: events 20-23 | |../src/gui/backend/arranger_object.c:3062:12: | 3062 | if (r1_region->id.type == REGION_TYPE_AUTOMATION) | | ^ | | | | | (20) following ‘false’ branch... |...... | 3066 | track_add_region ( | | ~~~~~~~~~~~~~~~~~~ | | | | | (21) ...to here | | (22) state of ‘INIT_VAL(r1_80(D))’: ‘null’ -> ‘stop’ (NULL origin) | | (23) calling ‘arranger_object_get_track’ from ‘arranger_object_unsplit’ | 3067 | arranger_object_get_track (r1), (ZRegion *) *obj, | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3068 | at, ((ZRegion *) r1)->id.lane_pos, F_GEN_NAME, | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3069 | fire_events); | | ~~~~~~~~~~~~ | +--> ‘arranger_object_get_track’: events 24-25 | |../src/gui/backend/arranger_object.c:1930:1: | 1930 | arranger_object_get_track (const ArrangerObject * const self) | | ^~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (24) entry to ‘arranger_object_get_track’ | 1931 | { | 1932 | g_return_val_if_fail (IS_ARRANGER_OBJECT (self), NULL); | | ~ | | | | | (25) following ‘true’ branch... | ‘arranger_object_get_track’: event 26 | |cc1: | (26): ...to here | ‘arranger_object_get_track’: event 27 | |../src/gui/backend/arranger_object.c:1934:11: | 1934 | Track * track = NULL; | | ^~~~~ | | | | | (27) ‘self’ is NULL | ‘arranger_object_get_track’: event 28 | |../src/gui/backend/arranger_object.c:1936:9: | 1936 | self->is_auditioner ? SAMPLE_PROCESSOR->tracklist : TRACKLIST; | | ~~~~^~~~~~~~~~~~~~~ | | | | | (28) dereference of NULL ‘self’ | ../src/gui/backend/arranger_object.c: 関数 ‘arranger_object_unsplit’ 内: ../src/gui/backend/arranger_object.c:3056:13: エラー: dereference of NULL ‘r1’ [CWE-476] [-Werror=analyzer-null-dereference] 3056 | switch (r1->type) | ~~^~~~~~ ‘arranger_object_unsplit’: event 1 | |../src/gui/backend/arranger_object.c:3021:1: | 3021 | arranger_object_unsplit ( | | ^~~~~~~~~~~~~~~~~~~~~~~ | | | | | (1) entry to ‘arranger_object_unsplit’ | ‘arranger_object_unsplit’: event 2 | |../src/gui/backend/arranger_object.c:3043:10: | 3043 | *obj = arranger_object_clone (r1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (2) calling ‘arranger_object_clone’ from ‘arranger_object_unsplit’ | +--> ‘arranger_object_clone’: events 3-6 | |../src/gui/backend/arranger_object.c:2568:1: | 2568 | arranger_object_clone (const ArrangerObject * self) | | ^~~~~~~~~~~~~~~~~~~~~ | | | | | (3) entry to ‘arranger_object_clone’ | 2569 | { | 2570 | g_return_val_if_fail (self, NULL); | | ~ ~~~~~~ | | | | | | | | (5) ...to here (6) ‘r1’ is NULL | | (4) following ‘false’ branch (when ‘self’ is NULL)... | <------+ | ‘arranger_object_unsplit’: events 7-8 | |../src/gui/backend/arranger_object.c:3043:10: | 3043 | *obj = arranger_object_clone (r1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (7) returning to ‘arranger_object_unsplit’ from ‘arranger_object_clone’ |...... | 3047 | arranger_object_end_pos_setter (*obj, &r2->end_pos); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (8) calling ‘arranger_object_end_pos_setter’ from ‘arranger_object_unsplit’ | +--> ‘arranger_object_end_pos_setter’: events 9-10 | |../src/gui/backend/arranger_object.c:1752:1: | 1752 | arranger_object_end_pos_setter ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (9) entry to ‘arranger_object_end_pos_setter’ |...... | 1756 | arranger_object_set_position ( | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (10) calling ‘arranger_object_set_position’ from ‘arranger_object_end_pos_setter’ | 1757 | self, pos, ARRANGER_OBJECT_POSITION_TYPE_END, F_VALIDATE); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | +--> ‘arranger_object_set_position’: events 11-13 | |../src/gui/backend/arranger_object.c:675:1: | 675 | arranger_object_set_position ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (11) entry to ‘arranger_object_set_position’ |...... | 681 | g_return_if_fail (self && pos); | | ~ | | | | | | | (13) ...to here | | (12) following ‘false’ branch (when ‘self’ is NULL)... | <------+ | ‘arranger_object_end_pos_setter’: event 14 | |../src/gui/backend/arranger_object.c:1756:3: | 1756 | arranger_object_set_position ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (14) returning to ‘arranger_object_end_pos_setter’ from ‘arranger_object_set_position’ | 1757 | self, pos, ARRANGER_OBJECT_POSITION_TYPE_END, F_VALIDATE); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | <------+ | ‘arranger_object_unsplit’: events 15-16 | |../src/gui/backend/arranger_object.c:3047:3: | 3047 | arranger_object_end_pos_setter (*obj, &r2->end_pos); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (15) returning to ‘arranger_object_unsplit’ from ‘arranger_object_end_pos_setter’ |...... | 3056 | switch (r1->type) | | ~~~~~~~~ | | | | | (16) dereference of NULL ‘r1’ | ../src/gui/backend/arranger_object.c:3066:9: エラー: use of NULL ‘r1’ where non-null expected [CWE-476] [-Werror=analyzer-null-argument] 3066 | track_add_region ( | ^~~~~~~~~~~~~~~~~~ 3067 | arranger_object_get_track (r1), (ZRegion *) *obj, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3068 | at, ((ZRegion *) r1)->id.lane_pos, F_GEN_NAME, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3069 | fire_events); | ~~~~~~~~~~~~ ‘arranger_object_unsplit’: event 1 | |../src/gui/backend/arranger_object.c:3021:1: | 3021 | arranger_object_unsplit ( | | ^~~~~~~~~~~~~~~~~~~~~~~ | | | | | (1) entry to ‘arranger_object_unsplit’ | ‘arranger_object_unsplit’: event 2 | |../src/gui/backend/arranger_object.c:3043:10: | 3043 | *obj = arranger_object_clone (r1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (2) calling ‘arranger_object_clone’ from ‘arranger_object_unsplit’ | +--> ‘arranger_object_clone’: events 3-6 | |../src/gui/backend/arranger_object.c:2568:1: | 2568 | arranger_object_clone (const ArrangerObject * self) | | ^~~~~~~~~~~~~~~~~~~~~ | | | | | (3) entry to ‘arranger_object_clone’ | 2569 | { | 2570 | g_return_val_if_fail (self, NULL); | | ~ ~~~~~~ | | | | | | | | (5) ...to here (6) ‘r1’ is NULL | | (4) following ‘false’ branch (when ‘self’ is NULL)... | <------+ | ‘arranger_object_unsplit’: events 7-8 | |../src/gui/backend/arranger_object.c:3043:10: | 3043 | *obj = arranger_object_clone (r1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (7) returning to ‘arranger_object_unsplit’ from ‘arranger_object_clone’ |...... | 3047 | arranger_object_end_pos_setter (*obj, &r2->end_pos); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (8) calling ‘arranger_object_end_pos_setter’ from ‘arranger_object_unsplit’ | +--> ‘arranger_object_end_pos_setter’: events 9-10 | |../src/gui/backend/arranger_object.c:1752:1: | 1752 | arranger_object_end_pos_setter ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (9) entry to ‘arranger_object_end_pos_setter’ |...... | 1756 | arranger_object_set_position ( | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (10) calling ‘arranger_object_set_position’ from ‘arranger_object_end_pos_setter’ | 1757 | self, pos, ARRANGER_OBJECT_POSITION_TYPE_END, F_VALIDATE); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | +--> ‘arranger_object_set_position’: events 11-13 | |../src/gui/backend/arranger_object.c:675:1: | 675 | arranger_object_set_position ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (11) entry to ‘arranger_object_set_position’ |...... | 681 | g_return_if_fail (self && pos); | | ~ | | | | | | | (13) ...to here | | (12) following ‘false’ branch (when ‘self’ is NULL)... | <------+ | ‘arranger_object_end_pos_setter’: event 14 | |../src/gui/backend/arranger_object.c:1756:3: | 1756 | arranger_object_set_position ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (14) returning to ‘arranger_object_end_pos_setter’ from ‘arranger_object_set_position’ | 1757 | self, pos, ARRANGER_OBJECT_POSITION_TYPE_END, F_VALIDATE); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | <------+ | ‘arranger_object_unsplit’: events 15-19 | |../src/gui/backend/arranger_object.c:3047:3: | 3047 | arranger_object_end_pos_setter (*obj, &r2->end_pos); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (15) returning to ‘arranger_object_unsplit’ from ‘arranger_object_end_pos_setter’ |...... | 3056 | switch (r1->type) | | ~~~~~~ ~~~~~~~~ | | | | | | | (16) state of ‘INIT_VAL(r1_80(D))’: ‘null’ -> ‘stop’ (NULL origin) | | (17) following ‘case 2:’ branch... | 3057 | { | 3058 | case ARRANGER_OBJECT_TYPE_REGION: | | ~~~~ | | | | | (18) ...to here |...... | 3061 | AutomationTrack * at = NULL; | | ~~ | | | | | (19) ‘r1’ is NULL | ‘arranger_object_unsplit’: events 20-22 | |../src/gui/backend/arranger_object.c:3062:12: | 3062 | if (r1_region->id.type == REGION_TYPE_AUTOMATION) | | ^ | | | | | (20) following ‘false’ branch... |...... | 3066 | track_add_region ( | | ~~~~~~~~~~~~~~~~~~ | | | | | (21) ...to here | | (22) argument 1 (‘r1’) NULL where non-null expected | 3067 | arranger_object_get_track (r1), (ZRegion *) *obj, | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3068 | at, ((ZRegion *) r1)->id.lane_pos, F_GEN_NAME, | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3069 | fire_events); | | ~~~~~~~~~~~~ | ../src/gui/backend/arranger_object.c:1930:1: 備考: argument 1 of ‘arranger_object_get_track’ must be non-null 1930 | arranger_object_get_track (const ArrangerObject * const self) | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../src/gui/backend/arranger_object.c:3092:3: エラー: use of NULL ‘r1’ where non-null expected [CWE-476] [-Werror=analyzer-null-argument] 3092 | arranger_selections_remove_object (sel, r1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ‘arranger_object_unsplit’: event 1 | |../src/gui/backend/arranger_object.c:3021:1: | 3021 | arranger_object_unsplit ( | | ^~~~~~~~~~~~~~~~~~~~~~~ | | | | | (1) entry to ‘arranger_object_unsplit’ | ‘arranger_object_unsplit’: event 2 | |../src/gui/backend/arranger_object.c:3043:10: | 3043 | *obj = arranger_object_clone (r1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (2) calling ‘arranger_object_clone’ from ‘arranger_object_unsplit’ | +--> ‘arranger_object_clone’: events 3-6 | |../src/gui/backend/arranger_object.c:2568:1: | 2568 | arranger_object_clone (const ArrangerObject * self) | | ^~~~~~~~~~~~~~~~~~~~~ | | | | | (3) entry to ‘arranger_object_clone’ | 2569 | { | 2570 | g_return_val_if_fail (self, NULL); | | ~ ~~~~~~ | | | | | | | | (5) ...to here (6) ‘r1’ is NULL | | (4) following ‘false’ branch (when ‘self’ is NULL)... | <------+ | ‘arranger_object_unsplit’: events 7-8 | |../src/gui/backend/arranger_object.c:3043:10: | 3043 | *obj = arranger_object_clone (r1); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (7) returning to ‘arranger_object_unsplit’ from ‘arranger_object_clone’ |...... | 3047 | arranger_object_end_pos_setter (*obj, &r2->end_pos); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (8) calling ‘arranger_object_end_pos_setter’ from ‘arranger_object_unsplit’ | +--> ‘arranger_object_end_pos_setter’: events 9-10 | |../src/gui/backend/arranger_object.c:1752:1: | 1752 | arranger_object_end_pos_setter ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (9) entry to ‘arranger_object_end_pos_setter’ |...... | 1756 | arranger_object_set_position ( | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (10) calling ‘arranger_object_set_position’ from ‘arranger_object_end_pos_setter’ | 1757 | self, pos, ARRANGER_OBJECT_POSITION_TYPE_END, F_VALIDATE); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | +--> ‘arranger_object_set_position’: events 11-13 | |../src/gui/backend/arranger_object.c:675:1: | 675 | arranger_object_set_position ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (11) entry to ‘arranger_object_set_position’ |...... | 681 | g_return_if_fail (self && pos); | | ~ | | | | | | | (13) ...to here | | (12) following ‘false’ branch (when ‘self’ is NULL)... | <------+ | ‘arranger_object_end_pos_setter’: event 14 | |../src/gui/backend/arranger_object.c:1756:3: | 1756 | arranger_object_set_position ( | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (14) returning to ‘arranger_object_end_pos_setter’ from ‘arranger_object_set_position’ | 1757 | self, pos, ARRANGER_OBJECT_POSITION_TYPE_END, F_VALIDATE); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | <------+ | ‘arranger_object_unsplit’: events 15-19 | |../src/gui/backend/arranger_object.c:3047:3: | 3047 | arranger_object_end_pos_setter (*obj, &r2->end_pos); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (15) returning to ‘arranger_object_unsplit’ from ‘arranger_object_end_pos_setter’ |...... | 3056 | switch (r1->type) | | ~~~~~~ ~~~~~~~~ | | | | | | | (16) state of ‘INIT_VAL(r1_80(D))’: ‘null’ -> ‘stop’ (NULL origin) | | (17) following ‘case 2:’ branch... | 3057 | { | 3058 | case ARRANGER_OBJECT_TYPE_REGION: | | ~~~~ | | | | | (18) ...to here |...... | 3061 | AutomationTrack * at = NULL; | | ~~ | | | | | (19) ‘r1’ is NULL | ‘arranger_object_unsplit’: events 20-21 | |../src/gui/backend/arranger_object.c:3066:9: | 3066 | track_add_region ( | | ^~~~~~~~~~~~~~~~~~ | | | | | (20) state of ‘INIT_VAL(r1_80(D))’: ‘null’ -> ‘stop’ (NULL origin) | | (21) calling ‘arranger_object_get_track’ from ‘arranger_object_unsplit’ | 3067 | arranger_object_get_track (r1), (ZRegion *) *obj, | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3068 | at, ((ZRegion *) r1)->id.lane_pos, F_GEN_NAME, | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3069 | fire_events); | | ~~~~~~~~~~~~ | +--> ‘arranger_object_get_track’: events 22-23 | |../src/gui/backend/arranger_object.c:1930:1: | 1930 | arranger_object_get_track (const ArrangerObject * const self) | | ^~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (22) entry to ‘arranger_object_get_track’ | 1931 | { | 1932 | g_return_val_if_fail (IS_ARRANGER_OBJECT (self), NULL); | | | | | | | (23) ‘r1’ is NULL | <------+ | ‘arranger_object_unsplit’: events 24-27 | |../src/gui/backend/arranger_object.c:3066:9: | 3066 | track_add_region ( | | ^~~~~~~~~~~~~~~~~~ | | | | | (24) returning to ‘arranger_object_unsplit’ from ‘arranger_object_get_track’ | 3067 | arranger_object_get_track (r1), (ZRegion *) *obj, | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3068 | at, ((ZRegion *) r1)->id.lane_pos, F_GEN_NAME, | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 3069 | fire_events); | | ~~~~~~~~~~~~ |...... | 3091 | g_return_if_fail (sel); | | ~ | | | | | (25) following ‘true’ branch (when ‘sel’ is non-NULL)... | 3092 | arranger_selections_remove_object (sel, r1); | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | (26) ...to here | | (27) argument 2 (‘r1’) NULL where non-null expected | 次のファイルから読み込み: ../inc/gui/backend/automation_selections.h:30, 次から読み込み: ../src/gui/backend/arranger_object.c:16: ../inc/gui/backend/arranger_selections.h:407:1: 備考: argument 2 of ‘arranger_selections_remove_object’ must be non-null 407 | arranger_selections_remove_object ( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: いくつかの警告はエラーとして取り扱われます ninja: build stopped: subcommand failed. ```