summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-07-15 10:06:17 +0200
committerMartin Liska <mliska@suse.cz>2019-07-16 09:49:03 +0200
commitc1870889b13b9284867d2c544822cb0a12f62123 (patch)
tree41bcefae62be1fdbdc475ca93ad8205e687cb3c4
parentd7a682fdede536dd95f76425ac9e06faf334199c (diff)
downloadmeson-c1870889b13b9284867d2c544822cb0a12f62123.tar.gz
Fix missing return statements that are seen with -Werror=return-type.
Error example: Code: #include <locale.h> int main () { /* If it's not defined as a macro, try to use as a symbol */ #ifndef LC_MESSAGES LC_MESSAGES; #endif } Compiler stdout: Compiler stderr: In file included from /usr/include/locale.h:25, from /tmp/tmpep_i4iwg/testfile.c:2: /usr/include/features.h:382:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp] 382 | # warning _FORTIFY_SOURCE requires compiling with optimization (-O) | ^~~~~~~ /tmp/tmpep_i4iwg/testfile.c: In function 'main': /tmp/tmpep_i4iwg/testfile.c:8:9: error: control reaches end of non-void function [-Werror=return-type] 8 | } | ^ cc1: some warnings being treated as errors
-rw-r--r--mesonbuild/compilers/c.py1
-rw-r--r--mesonbuild/compilers/mixins/clike.py4
2 files changed, 5 insertions, 0 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index 47cfd981d..eff716106 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -67,6 +67,7 @@ class CCompiler(CLikeCompiler, Compiler):
#ifndef {symbol}
{symbol};
#endif
+ return 0;
}}'''
return self.compiles(t.format(**fargs), env, extra_args=extra_args,
dependencies=dependencies)
diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py
index e032402ff..0591b7f12 100644
--- a/mesonbuild/compilers/mixins/clike.py
+++ b/mesonbuild/compilers/mixins/clike.py
@@ -332,6 +332,7 @@ class CLikeCompiler:
#ifndef {symbol}
{symbol};
#endif
+ return 0;
}}'''
return self.compiles(t.format(**fargs), env, extra_args=extra_args,
dependencies=dependencies)
@@ -555,6 +556,7 @@ class CLikeCompiler:
{prefix}
int main() {{
{type} something;
+ return 0;
}}'''
if not self.compiles(t.format(**fargs), env, extra_args=extra_args,
dependencies=dependencies)[0]:
@@ -633,6 +635,7 @@ class CLikeCompiler:
#include <stdio.h>
int main() {{
printf ("{fmt}", {cast} {f}());
+ return 0;
}}'''.format(**fargs)
res = self.run(code, env, extra_args=extra_args, dependencies=dependencies)
if not res.compiled:
@@ -785,6 +788,7 @@ class CLikeCompiler:
#error "No definition for __builtin_{func} found in the prefix"
#endif
#endif
+ return 0;
}}'''
return self.links(t.format(**fargs), env, extra_args=extra_args,
dependencies=dependencies)