From b56f008f805803f917c62462af9776149e2b7e13 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Fri, 15 Apr 2016 00:16:09 +0530 Subject: [PATCH] compilers: Fix cross_sizeof when the type doesn't exist (#514) compilers: Fix cross_sizeof when the type doesn't exist --- mesonbuild/compilers.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mesonbuild/compilers.py b/mesonbuild/compilers.py index 0535653bf..8dee468a7 100644 --- a/mesonbuild/compilers.py +++ b/mesonbuild/compilers.py @@ -576,13 +576,23 @@ int main () {{ {1}; }}''' return RunResult(True, pe.returncode, so, se) def cross_sizeof(self, element, prefix, env, extra_args=[]): - templ = '''%s + element_exists_templ = '''#include +{0} +int main(int argc, char **argv) {{ + {1}; +}} +''' + templ = '''#include +%s int temparray[%d-sizeof(%s)]; ''' try: extra_args += env.cross_info.config['properties'][self.language + '_args'] except KeyError: pass + extra_args += self.get_no_optimization_args() + if not self.compiles(element_exists_templ.format(prefix, element)): + return -1 for i in range(1, 1024): code = templ % (prefix, i, element) if self.compiles(code, extra_args):