RFR: 8293088: Fix compilation with the new Visual Studio preprocessor

Daniel Jeliński djelinski at openjdk.org
Fri Sep 2 05:55:43 UTC 2022


On Tue, 30 Aug 2022 12:08:09 GMT, Daniel Jeliński <djelinski at 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



More information about the security-dev mailing list