From 4978ecb26e6cda98cff002d7ecece1a2bc147499 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 d618cd692b..1b0f25cc81 100644 --- a/.gitignore +++ b/.gitignore @@ -59,6 +59,7 @@ Makefile /test/v3ext /test/versions /test/ossl_shim/ossl_shim +/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 08657c8011..df448d09a8 100644 --- a/test/build.info +++ b/test/build.info @@ -26,7 +26,7 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN PROGRAMS_NO_INST=\ versions \ aborttest test_test \ - sanitytest exdatatest bntest \ + sanitytest rsa_complex exdatatest bntest \ ectest ecstresstest ecdsatest gmdifftest pbelutest ideatest \ md2test \ hmactest \ @@ -64,6 +64,9 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN INCLUDE[sanitytest]=../include DEPEND[sanitytest]=../libcrypto libtestutil.a + SOURCE[rsa_complex]=rsa_complex.c + INCLUDE[rsa_complex]=../include + SOURCE[test_test]=test_test.c INCLUDE[test_test]=../include DEPEND[test_test]=../libcrypto libtestutil.a 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