summaryrefslogtreecommitdiffstats
path: root/sys/gnu/fs/reiserfs
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2005-12-04 09:57:09 +0000
committerru <ru@FreeBSD.org>2005-12-04 09:57:09 +0000
commit8da610ce473dacf93c5b6212e94c89a4e447c5e5 (patch)
treed5ac5b0359101e0300dd8e76572b08f22f1fb9ea /sys/gnu/fs/reiserfs
parentd7f72714df95f7b7a9e4e35639d450dc9c65650f (diff)
downloadFreeBSD-src-8da610ce473dacf93c5b6212e94c89a4e447c5e5.zip
FreeBSD-src-8da610ce473dacf93c5b6212e94c89a4e447c5e5.tar.gz
Oops, the bug is still here, but reimplement the cpp(1) conditional properly.
Diffstat (limited to 'sys/gnu/fs/reiserfs')
-rw-r--r--sys/gnu/fs/reiserfs/reiserfs_fs.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/gnu/fs/reiserfs/reiserfs_fs.h b/sys/gnu/fs/reiserfs/reiserfs_fs.h
index 1046f29..691f612 100644
--- a/sys/gnu/fs/reiserfs/reiserfs_fs.h
+++ b/sys/gnu/fs/reiserfs/reiserfs_fs.h
@@ -1015,8 +1015,17 @@ struct path {
#define pos_in_item(path) ((path)->pos_in_item)
+#ifdef __amd64__
+/* To workaround a bug in gcc. He generates a call to memset() which
+ * is a inline function; this causes a compile time error. */
+#define INITIALIZE_PATH(var) \
+ struct path var; \
+ bzero(&var, sizeof(var)); \
+ var.path_length = ILLEGAL_PATH_ELEMENT_OFFSET;
+#else
#define INITIALIZE_PATH(var) \
struct path var = { ILLEGAL_PATH_ELEMENT_OFFSET, }
+#endif
/* Get path element by path and path position. */
#define PATH_OFFSET_PELEMENT(p_s_path, n_offset) \
OpenPOWER on IntegriCloud