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