chiark / gitweb /
journal: align byte-buffer that gets cased to an object
authorKay Sievers <kay@vrfy.org>
Sun, 15 Jul 2012 12:58:29 +0000 (14:58 +0200)
committerKay Sievers <kay@vrfy.org>
Sun, 15 Jul 2012 12:58:29 +0000 (14:58 +0200)
On Sun, Jul 15, 2012 at 2:00 PM, Koen Kooi <koen@dominion.thruhere.net> wrote:
> | src/journal/sd-journal.c: In function 'sd_journal_process':
> | src/journal/sd-journal.c:1891:21: warning: cast increases required alignment of target type [-Wcast-align]
> | src/journal/sd-journal.c:1900:29: warning: cast increases required alignment of target type [-Wcast-align]

src/journal/sd-journal.c
src/shared/macro.h

index 57572d4..a2900fb 100644 (file)
@@ -1868,7 +1868,7 @@ static int determine_change(sd_journal *j) {
 }
 
 _public_ int sd_journal_process(sd_journal *j) {
-        uint8_t buffer[sizeof(struct inotify_event) + FILENAME_MAX];
+        uint8_t buffer[sizeof(struct inotify_event) + FILENAME_MAX] _alignas_(struct inotify_event);
         bool got_something = false;
 
         if (!j)
index 1c0aa91..97eebbc 100644 (file)
@@ -45,6 +45,7 @@
 #define _hidden_ __attribute__ ((visibility("hidden")))
 #define _weakref_(x) __attribute__((weakref(#x)))
 #define _introspect_(x) __attribute__((section("introspect." x)))
+#define _alignas_(x) __attribute__((aligned(__alignof(x))))
 
 #define XSTRINGIFY(x) #x
 #define STRINGIFY(x) XSTRINGIFY(x)