diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0e8a164..7e8150c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -506,6 +506,7 @@ ADD_DEFINITIONS(-DHAVE_CONFIG_H)
 
 IF(MSVC)
   ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS)
+  add_compile_options(/wd4146)
 ENDIF(MSVC)
 
 SET(CMAKE_INCLUDE_CURRENT_DIR 1)
diff --git a/src/pcre2_match.c b/src/pcre2_match.c
index 050b7e9..49925a2 100644
--- a/src/pcre2_match.c
+++ b/src/pcre2_match.c
@@ -566,7 +566,7 @@ match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, PCRE2_SIZE *ovector,
 heapframe *F;           /* Current frame pointer */
 heapframe *N = NULL;    /* Temporary frame pointers */
 heapframe *P = NULL;
-heapframe *assert_accept_frame;  /* For passing back the frame with captures */
+heapframe *assert_accept_frame = NULL;  /* For passing back the frame with captures */
 PCRE2_SIZE frame_copy_size;      /* Amount to copy when creating a new frame */
 
 /* Local variables that do not need to be preserved over calls to RRMATCH(). */
