Skip to content

Commit

Permalink
patch 8.2.3824: no ASAN support for MSVC
Browse files Browse the repository at this point in the history
Problem:    No ASAN support for MSVC.
Solution:   Add ASAN support and fix a coupld of uncovered problems. (Yegappan
            Lakshmanan, closes #9357)
  • Loading branch information
yegappan authored and brammool committed Dec 16, 2021
1 parent 6ecf58b commit 6df0f27
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/Make_mvc.mak
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@
#
# Static Code Analysis: ANALYZE=yes (works with VS2012 or later)
#
# Address Sanitizer: ASAN=yes (works with VS2019 or later)
#
# You can combine any of these interfaces
#
# Example: To build the non-debug, GUI version with Perl interface:
Expand Down Expand Up @@ -662,6 +664,12 @@ CFLAGS = $(CFLAGS) -DHAVE_STDINT_H
CFLAGS = $(CFLAGS) /analyze
!endif

# Address Sanitizer (ASAN) generally available starting with VS2019 version
# 16.9
!if ("$(ASAN)" == "yes") && ($(MSVC_MAJOR) >= 14)
CFLAGS = $(CFLAGS) /fsanitize=address
!endif

!ifdef NODEBUG
VIM = vim
! if "$(OPTIMIZE)" == "SPACE"
Expand Down
2 changes: 1 addition & 1 deletion src/findfile.c
Original file line number Diff line number Diff line change
Expand Up @@ -2653,7 +2653,7 @@ simplify_filename(char_u *filename)

p = filename;
# ifdef BACKSLASH_IN_FILENAME
if (p[1] == ':') // skip "x:"
if (p[0] != NUL && p[1] == ':') // skip "x:"
p += 2;
# endif

Expand Down
2 changes: 2 additions & 0 deletions src/os_mswin.c
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,8 @@ mch_isFullName(char_u *fname)
// Another way to check is to use mch_FullName() and see if the result is
// the same as the name or mch_FullName() fails. However, this has quite a
// bit of overhead, so let's not do that.
if (*fname == NUL)
return TRUE;
return ((ASCII_ISALPHA(fname[0]) && fname[1] == ':'
&& (fname[2] == '/' || fname[2] == '\\'))
|| (fname[0] == fname[1] && (fname[0] == '/' || fname[0] == '\\')));
Expand Down
1 change: 1 addition & 0 deletions src/testdir/test_fnamemodify.vim
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ func Test_fnamemodify_er()
call assert_equal('b.c', fnamemodify('a.b.c.d.e', ':r:r:e:e:e'))
call assert_equal('b.c', fnamemodify('a.b.c.d.e', ':r:r:e:e:e:e'))

call assert_equal('', fnamemodify('', ':p:t'))
call assert_equal('', fnamemodify(test_null_string(), test_null_string()))
endfunc

Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3824,
/**/
3823,
/**/
Expand Down

0 comments on commit 6df0f27

Please sign in to comment.