From 15f44be1c7f71cb0a8c6863917acbbc301c621fe Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 15 Jul 2019 10:06:17 +0200 Subject: [PATCH] Fix missing return statements that are seen with -Werror=return-type. Error example: Code: #include 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 Upstream-Status: Backport Signed-off-by: Martin Jansa --- mesonbuild/compilers/c.py | 1 + mesonbuild/compilers/clike.py | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py index 3b58a076..9ef92077 100644 --- a/mesonbuild/compilers/c.py +++ b/mesonbuild/compilers/c.py @@ -70,6 +70,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/clike.py b/mesonbuild/compilers/clike.py index 83f67591..f9cbeabd 100644 --- a/mesonbuild/compilers/clike.py +++ b/mesonbuild/compilers/clike.py @@ -375,6 +375,7 @@ class CLikeCompiler: #ifndef {symbol} {symbol}; #endif + return 0; }}''' return self.compiles(t.format(**fargs), env, extra_args=extra_args, dependencies=dependencies) @@ -554,6 +555,7 @@ class CLikeCompiler: {prefix} int main(int argc, char **argv) {{ {type} something; + return 0; }}''' if not self.compiles(t.format(**fargs), env, extra_args=extra_args, dependencies=dependencies)[0]: @@ -589,6 +591,7 @@ class CLikeCompiler: {prefix} int main(int argc, char **argv) {{ {type} something; + return 0; }}''' if not self.compiles(t.format(**fargs), env, extra_args=extra_args, dependencies=dependencies)[0]: @@ -667,6 +670,7 @@ class CLikeCompiler: #include int main(int argc, char *argv[]) {{ printf ("{fmt}", {cast} {f}()); + return 0; }}'''.format(**fargs) res = self.run(code, env, extra_args=extra_args, dependencies=dependencies) if not res.compiled: @@ -819,6 +823,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) -- 2.17.1