summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-06-03 17:03:22 +0200
committerLucas De Marchi <lucas.demarchi@intel.com>2017-06-05 10:07:00 -0700
commitecab65b35c3c22af6a503486022ad8b85ccd1cad (patch)
treed4ab2baf279958a4a4e525fe4c3cbf49ed03b180
parentdf492f5ca3dc4d37323ee9e14fd4564e34264713 (diff)
downloadkmod-ecab65b35c3c22af6a503486022ad8b85ccd1cad.tar.gz
kmod-ecab65b35c3c22af6a503486022ad8b85ccd1cad.zip
shared/util.c: assert_cc() can only be used inside functions
shared/macro.h has two versions of assert_cc, one that uses gcc _Static_assert(), which requires recent enough gcc versions, and one that uses a fake array to trigger a build error. The latter can only work inside functions, so assert_cc() should only be used inside functions. Fixes the following build failure when building kmod with old gcc versions such as gcc 4.3.x: shared/util.c:52: error: expected identifier or '(' before 'do' shared/util.c:52: error: expected identifier or '(' before 'while' Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--shared/util.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/shared/util.c b/shared/util.c
index 9de080a..fd2028d 100644
--- a/shared/util.c
+++ b/shared/util.c
@@ -49,8 +49,6 @@ static const struct kmod_ext {
{ }
};
-assert_cc(EAGAIN == EWOULDBLOCK);
-
/* string handling functions and memory allocations */
/* ************************************************************************ */
@@ -201,6 +199,8 @@ ssize_t read_str_safe(int fd, char *buf, size_t buflen)
size_t todo = buflen - 1;
size_t done = 0;
+ assert_cc(EAGAIN == EWOULDBLOCK);
+
do {
ssize_t r = read(fd, buf + done, todo);
@@ -226,6 +226,8 @@ ssize_t write_str_safe(int fd, const char *buf, size_t buflen)
size_t todo = buflen;
size_t done = 0;
+ assert_cc(EAGAIN == EWOULDBLOCK);
+
do {
ssize_t r = write(fd, buf + done, todo);