[PATCH:libX11 1/3] Tell clang not to report -Wpadded warnings on public headers we can't fix

Alan Coopersmith alan.coopersmith at oracle.com
Wed Dec 26 23:02:17 PST 2012


Better to silence the compiler warning than break ABI.

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 include/X11/Xcms.h    |   12 ++++++++++++
 include/X11/Xlib.h    |   12 ++++++++++++
 include/X11/Xlibint.h |   12 ++++++++++++
 include/X11/Xutil.h   |   12 ++++++++++++
 4 files changed, 48 insertions(+)

diff --git a/include/X11/Xcms.h b/include/X11/Xcms.h
index 8151fd1..6631854 100644
--- a/include/X11/Xcms.h
+++ b/include/X11/Xcms.h
@@ -31,6 +31,14 @@
 
 #include <X11/Xlib.h>
 
+/* The Xcms structs are full of implicit padding to properly align members.
+   We can't clean that up without breaking ABI, so tell clang not to bother
+   complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
     /*
      * XCMS Status Values
      */
@@ -798,6 +806,10 @@ extern Visual *XcmsVisualOfCCC (
     XcmsCCC		/* ccc */
 );
 
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 _XFUNCPROTOEND
 
 #endif /* _X11_XCMS_H_ */
diff --git a/include/X11/Xlib.h b/include/X11/Xlib.h
index dd4c7c4..9618081 100644
--- a/include/X11/Xlib.h
+++ b/include/X11/Xlib.h
@@ -81,6 +81,14 @@ _Xmblen(
    November 2000. Its presence is indicated through the following macro. */
 #define X_HAVE_UTF8_STRING 1
 
+/* The Xlib structs are full of implicit padding to properly align members.
+   We can't clean that up without breaking ABI, so tell clang not to bother
+   complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
 typedef char *XPointer;
 
 #define Bool int
@@ -4019,6 +4027,10 @@ extern void XFreeEventData(
     XGenericEventCookie*	/* cookie*/
 );
 
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 _XFUNCPROTOEND
 
 #endif /* _X11_XLIB_H_ */
diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h
index 80edeec..23e751b 100644
--- a/include/X11/Xlibint.h
+++ b/include/X11/Xlibint.h
@@ -42,6 +42,14 @@ from The Open Group.
 #include <X11/Xproto.h>		/* to declare xEvent */
 #include <X11/XlibConf.h>	/* for configured options like XTHREADS */
 
+/* The Xlib structs are full of implicit padding to properly align members.
+   We can't clean that up without breaking ABI, so tell clang not to bother
+   complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
 #ifdef WIN32
 #define _XFlush _XFlushIt
 #endif
@@ -1364,6 +1372,10 @@ extern void xlocaledir(
     int buf_len
 );
 
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 _XFUNCPROTOEND
 
 #endif /* _X11_XLIBINT_H_ */
diff --git a/include/X11/Xutil.h b/include/X11/Xutil.h
index 8cab50e..62cdf55 100644
--- a/include/X11/Xutil.h
+++ b/include/X11/Xutil.h
@@ -53,6 +53,14 @@ SOFTWARE.
 #include <X11/Xlib.h>
 #include <X11/keysym.h>
 
+/* The Xlib structs are full of implicit padding to properly align members.
+   We can't clean that up without breaking ABI, so tell clang not to bother
+   complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
 /*
  * Bitmask returned by XParseGeometry().  Each bit tells if the corresponding
  * value (x, y, width, height) was found in the parsed string.
@@ -821,6 +829,10 @@ extern int XXorRegion(
     Region		/* dr_return */
 );
 
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 _XFUNCPROTOEND
 
 #endif /* _X11_XUTIL_H_ */
-- 
1.7.9.2



More information about the xorg-devel mailing list