summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-11-19 20:47:46 +0100
committerLennart Poettering <lennart@poettering.net>2018-11-19 21:14:34 +0100
commit8a4fdaf2921db52e46b800b6540f8e99853b556f (patch)
tree734c6724fb9a78c71e4ad796c37ff791cb2c28bf
parent67e16c31e9c797e722b1a5ee427512eb8a974a4b (diff)
downloadsystemd-8a4fdaf2921db52e46b800b6540f8e99853b556f.tar.gz
main-func: automatically call static destructors from main-func.h macros
-rw-r--r--src/basic/main-func.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/basic/main-func.h b/src/basic/main-func.h
index 9ebe0ab882..caa5885e8b 100644
--- a/src/basic/main-func.h
+++ b/src/basic/main-func.h
@@ -3,12 +3,15 @@
#include <stdlib.h>
+#include "static-destruct.h"
+
/* Negative return values from impl are mapped to EXIT_FAILURE, and
* everything else means success! */
#define DEFINE_MAIN_FUNCTION(impl) \
int main(int argc, char *argv[]) { \
int r; \
r = impl(argc, argv); \
+ static_destruct(); \
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; \
}
@@ -19,5 +22,6 @@
int main(int argc, char *argv[]) { \
int r; \
r = impl(argc, argv); \
+ static_destruct(); \
return r != 0 ? EXIT_FAILURE : EXIT_SUCCESS; \
}