From 55b1542ca57537e0899e8b82d4f0363db8f1d261 Mon Sep 17 00:00:00 2001 From: Pauli Date: Mon, 17 Sep 2018 08:09:25 +1000 Subject: [PATCH] Add a compile time test to verify that openssl/rsa.h and complex.h can coexist. Reviewed-by: Tim Hudson Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/7233) (cherry picked from commit da5fac72b1cba5651b871902eea234e693cf01e5) --- .gitignore | 1 + test/build.info | 5 ++++- test/rsa_complex.c | 27 +++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 test/rsa_complex.c diff --git a/.gitignore b/.gitignore index 3dee3922a7..717aeb39c1 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,7 @@ Makefile /test/x509aux /test/v3ext /test/versions +/test/rsa_complex # Certain files that get created by tests on the fly /test/test-runs diff --git a/test/build.info b/test/build.info index d850b5229c..2367ab841a 100644 --- a/test/build.info +++ b/test/build.info @@ -2,7 +2,7 @@ IF[{- !$disabled{tests} -}] PROGRAMS_NO_INST=\ versions \ aborttest \ - sanitytest exdatatest bntest \ + sanitytest rsa_complex exdatatest bntest \ ectest ecdsatest gmdifftest pbelutest ideatest \ md2test md4test md5test \ hmactest wp_test \ @@ -32,6 +32,9 @@ IF[{- !$disabled{tests} -}] INCLUDE[sanitytest]=../include DEPEND[sanitytest]=../libcrypto + SOURCE[rsa_complex]=rsa_complex.c + INCLUDE[rsa_complex]=../include + SOURCE[exdatatest]=exdatatest.c INCLUDE[exdatatest]=../include DEPEND[exdatatest]=../libcrypto diff --git a/test/rsa_complex.c b/test/rsa_complex.c new file mode 100644 index 0000000000..fac581254a --- /dev/null +++ b/test/rsa_complex.c @@ -0,0 +1,27 @@ +/* + * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* + * Check to see if there is a conflict between complex.h and openssl/rsa.h. + * The former defines "I" as a macro and earlier versions of the latter use + * for function arguments. + */ +#if defined(__STDC_VERSION__) +# if __STDC_VERSION__ >= 199901L +# include +# endif +#endif +#include +#include + +int main(int argc, char *argv[]) +{ + /* There are explicitly no run time checks for this one */ + return EXIT_SUCCESS; +} -- 2.25.1