Mercurial > vim
view runtime/compiler/fortran_g77.vim @ 33303:924e9cb09df7 v9.0.1917
patch 9.0.1917: undefined behaviour with python function pointer
Commit: https://github.com/vim/vim/commit/d606fccf6fd716bda43a8e1d11d898f438d28b82
Author: Yee Cheng Chin <ychin.git@gmail.com>
Date: Wed Sep 20 19:59:47 2023 +0200
patch 9.0.1917: undefined behaviour with python function pointer
Problem: undefined behaviour with python function pointer
Solution: correctly cast function pointers from void
Fix more undefined behaviors in if_python
Fix remaining UBSAN errors from Clang 17 in if_python in casting
function pointers.
Also fix a mistake where `PyMem_Free()` should be returning void, by the
dynamic build is mistakenly casting it as a function that returns an
int.
closes: #13128
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 20 Sep 2023 20:15:04 +0200 |
parents | 7bc41231fbc7 |
children | e1df51f68736 |
line wrap: on
line source
" Vim compiler file " Compiler: g77 (GNU Fortran) " Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de> " Last Change: $Date: 2004/06/13 18:17:36 $ " $Revision: 1.1 $ if exists("current_compiler") finish endif let current_compiler = "fortran_g77" if exists(":CompilerSet") != 2 " older Vim always used :setlocal command -nargs=* CompilerSet setlocal <args> endif let s:cpo_save = &cpo set cpo-=C " Note: The errorformat assumes GNU make " sample multiline errors (besides gcc backend one-liners): " gev.f:14: " parameter UPLO = 'Upper-triangle' " ^ " Unsupported VXT statement at (^) " gev.f:6: " integer desca( * ), descb( * ) " 1 " gev.f:19: (continued): " end subroutine " 2 " Invalid declaration of or reference to symbol `desca' at (2) [initially seen at (1)] CompilerSet errorformat= \%Omake:\ %r, \%f:%l:\ warning:\ %m, \%A%f:%l:\ (continued):, \%W%f:%l:\ warning:, \%A%f:%l:\ , \%-C\ \ \ %p%*[0123456789^]%.%#, \%-C\ \ \ %.%#, \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f', \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f', \%DMaking\ %*\\a\ in\ %f, \%Z%m let &cpo = s:cpo_save unlet s:cpo_save