Work around GCC6
authorKlaus Ethgen <Klaus@Ethgen.de>
Thu, 14 Apr 2016 13:25:44 +0000 (14:25 +0100)
committerKlaus Ethgen <Klaus@Ethgen.de>
Thu, 14 Apr 2016 13:40:47 +0000 (14:40 +0100)
This problem is really annoying. Left shifting a value does not require
it to be positive in C. However, some specifications define that as
undefined behaviour.

Nevertheless, as used in this case it is perfectly fine and widely used
construct.

Closes #230, #378

src/typedefs.h

index ca34ef6..7223ea7 100644 (file)
@@ -161,7 +161,7 @@ typedef enum {
        CHANGE_WARN_CHANGED_EXT        = 1 << 3,
        CHANGE_WARN_UNSAVED_META       = 1 << 4,
        CHANGE_WARN_NO_WRITE_PERM_DEST_DIR  = 1 << 5,
-       CHANGE_ERROR_MASK              = (~0) << 8, /* the values below are fatal errors */
+       CHANGE_ERROR_MASK              = (~0U) << 8, /* the values below are fatal errors */
        CHANGE_NO_READ_PERM            = 1 << 8,
        CHANGE_NO_WRITE_PERM_DIR       = 1 << 9,
        CHANGE_NO_DEST_DIR             = 1 << 10,