On 01-Mar-2020 09:25, Bram Moolenaar wrote:
Patch 8.2.0336
Problem: Vim9: insufficient test coverage for compiling.
Solution: Add more tests.
Files: src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_script.vim,
src/vim9.h, src/vim9compile.c, src/vim9execute.c
Hi All,
After this patch, mingw spits out this compile warning and linker error
if FEAT_JOB_CHANNEL is not defined:
<snip>
gcc -c -I. -Iproto -DWIN32 -DWINVER=0x0603 -D_WIN32_WINNT=0x0603
-DHAVE_PATHDEF -DFEAT_NORMAL -DHAVE_STDINT_H -DFEAT_GUI_MSWIN
-DFEAT_CLIPBOARD -pipe -march=native -Wall -O3 -fomit-frame-pointer
-freg-struct-return vim9compile.c -o gobjnative/vim9compile.o
vim9compile.c: In function 'delete_instr':
vim9compile.c:5230:6: warning: implicit declaration of function
'job_unref'; did you mean 'blob_unref'? [-Wimplicit-function-declaration]
5230 | job_unref(isn->isn_arg.job);
| ^~~~~~~~~
| blob_unref
vim9compile.c:5234:6: warning: implicit declaration of function
'channel_unref' [-Wimplicit-function-declaration]
5234 | channel_unref(isn->isn_arg.channel);
| ^~~~~~~~~~~~~
gcc -I. -Iproto -DWIN32 -DWINVER=0x0603 -D_WIN32_WINNT=0x0603
-DHAVE_PATHDEF -DFEAT_NORMAL -DHAVE_STDINT_H -DFEAT_GUI_MSWIN
-DFEAT_CLIPBOARD -pipe -march=native -Wall -O3 -fomit-frame-pointer
-freg-struct-return -Wl,-nxcompat,-dynamicbase -mwindows -municode -s -o
gvim.exe gobjnative/arabic.o gobjnative/arglist.o gobjnative/autocmd.o
gobjnative/beval.o gobjnative/blob.o gobjnative/blowfish.o
gobjnative/buffer.o gobjnative/bufwrite.o gobjnative/change.o
gobjnative/charset.o gobjnative/cindent.o gobjnative/cmdexpand.o
gobjnative/cmdhist.o gobjnative/crypt.o gobjnative/crypt_zip.o
gobjnative/debugger.o gobjnative/dict.o gobjnative/diff.o
gobjnative/digraph.o gobjnative/drawline.o gobjnative/drawscreen.o
gobjnative/edit.o gobjnative/eval.o gobjnative/evalbuffer.o
gobjnative/evalfunc.o gobjnative/evalvars.o gobjnative/evalwindow.o
gobjnative/ex_cmds.o gobjnative/ex_cmds2.o gobjnative/ex_docmd.o
gobjnative/ex_eval.o gobjnative/ex_getln.o gobjnative/fileio.o
gobjnative/filepath.o gobjnative/findfile.o gobjnative/fold.o
gobjnative/getchar.o gobjnative/hardcopy.o gobjnative/hashtab.o
gobjnative/highlight.o gobjnative/if_cscope.o gobjnative/indent.o
gobjnative/insexpand.o gobjnative/json.o gobjnative/list.o
gobjnative/main.o gobjnative/map.o gobjnative/mark.o
gobjnative/memfile.o gobjnative/memline.o gobjnative/menu.o
gobjnative/message.o gobjnative/misc1.o gobjnative/misc2.o
gobjnative/mouse.o gobjnative/move.o gobjnative/mbyte.o
gobjnative/normal.o gobjnative/ops.o gobjnative/option.o
gobjnative/optionstr.o gobjnative/os_mswin.o gobjnative/os_win32.o
gobjnative/pathdef.o gobjnative/popupmenu.o gobjnative/popupwin.o
gobjnative/profiler.o gobjnative/quickfix.o gobjnative/regexp.o
gobjnative/register.o gobjnative/scriptfile.o gobjnative/screen.o
gobjnative/search.o gobjnative/session.o gobjnative/sha256.o
gobjnative/sign.o gobjnative/spell.o gobjnative/spellfile.o
gobjnative/spellsuggest.o gobjnative/syntax.o gobjnative/tag.o
gobjnative/term.o gobjnative/testing.o gobjnative/textprop.o
gobjnative/time.o gobjnative/ui.o gobjnative/undo.o gobjnative/usercmd.o
gobjnative/userfunc.o gobjnative/version.o gobjnative/vim9compile.o
gobjnative/vim9execute.o gobjnative/vim9script.o gobjnative/viminfo.o
gobjnative/winclip.o gobjnative/window.o gobjnative/os_w32exe.o
gobjnative/vimrc.o gobjnative/xdiffi.o gobjnative/xemit.o
gobjnative/xprepare.o gobjnative/xutils.o gobjnative/xhistogram.o
gobjnative/xpatience.o gobjnative/gui.o gobjnative/gui_w32.o
gobjnative/gui_beval.o -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32
-lcomctl32 -lnetapi32 -lversion -lole32 -luuid
D:/Users/John/Documents/software/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.1/../../../../x86_64-w64-mingw32/bin/ld.exe:
gobjnative/vim9compile.o:vim9compile.c:(.text+0x9689): undefined
reference to `job_unref'
D:/Users/John/Documents/software/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.1/../../../../x86_64-w64-mingw32/bin/ld.exe:
gobjnative/vim9compile.o:vim9compile.c:(.text+0x96a9): undefined
reference to `channel_unref'
collect2.exe: error: ld returned 1 exit status
make: *** [Make_cyg_ming.mak:1043: gvim.exe] Error 1
</snip>
The attached patch tries to fix it.
Cheers
John
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/9033b60f-010f-b24f-e7f8-c95a35444650%40internode.on.net.
--- vim9compile.c.orig 2020-03-01 09:34:18.102038300 +1100
+++ vim9compile.c 2020-03-01 09:45:22.962504400 +1100
@@ -5227,11 +5227,15 @@
break;
case ISN_PUSHJOB:
+#ifdef FEAT_JOB_CHANNEL
job_unref(isn->isn_arg.job);
+#endif
break;
case ISN_PUSHCHANNEL:
+#ifdef FEAT_JOB_CHANNEL
channel_unref(isn->isn_arg.channel);
+#endif
break;
case ISN_UCALL: