On Tue, 30 Aug 2022 12:08:09 GMT, Daniel Jeliński <djelin...@openjdk.org> wrote:

> Fix compilation with Zc:preprocessor enabled. 
> 
> The flag itself will be enabled in 
> [JDK-8247283](https://bugs.openjdk.org/browse/JDK-8247283); I enabled the 
> flag using instructions found in Magnus's comment on that issue.
> 
> Windows 10 SDK version 2104 (10.0.20348.0) is required for successful 
> compilation. Compilation fails with a warning (treated as error by default) 
> with older versions of Windows 10 SDK.
> 
> I verified that the compilation completes successfully with this patch, both 
> in debug and in release mode, both with and without Zc:preprocessor.

FWIW, here's the test that I used:


#include <stdio.h>

#define PRINTERR(res) \
  PRINT(res, " " ## #res ## " in file " __FILE__);
  
#define PRINT(res, msg) \
  printf("- " ## msg ## " val=%d\n", res);
  
int main() {
        for (int i = 0; i < 2; i++) {
                PRINTERR(i);
        }
}

Output:

-  i in file test.c val=0
-  i in file test.c val=1

removing `##` does not change the output.

-------------

PR: https://git.openjdk.org/jdk/pull/10080

Reply via email to