[profile] Second speculative fix for Windows
authorVedant Kumar <vsk@apple.com>
Thu, 31 Oct 2019 23:25:24 +0000 (16:25 -0700)
committerVedant Kumar <vsk@apple.com>
Thu, 31 Oct 2019 23:25:25 +0000 (16:25 -0700)
VLAs in C appear to not work on Windows, so use COMPILER_RT_ALLOCA:

C:\b\slave\sanitizer-windows\llvm-project\compiler-rt\lib\profile\InstrProfilingWriter.c(264): error C2057: expected constant expression
C:\b\slave\sanitizer-windows\llvm-project\compiler-rt\lib\profile\InstrProfilingWriter.c(264): error C2466: cannot allocate an array of constant size 0
C:\b\slave\sanitizer-windows\llvm-project\compiler-rt\lib\profile\InstrProfilingWriter.c(264): error C2133: 'Zeroes': unknown size

compiler-rt/lib/profile/InstrProfilingWriter.c

index ae9e1fa..0b2e176 100644 (file)
@@ -261,7 +261,7 @@ lprofWriteDataImpl(ProfDataWriter *Writer, const __llvm_profile_data *DataBegin,
 
   /* Enough zeroes for padding. */
   unsigned PageSize = getpagesize();
-  char Zeroes[PageSize];
+  char *Zeroes = (char *)COMPILER_RT_ALLOCA(PageSize);
   memset(Zeroes, 0, PageSize);
 
   /* Create the header. */