Hi,

r207606 changed the __need_foo macros to behave like they do with gcc: If
they are set, _only_ the __need_foo stuff gets defined. libc++'s cstddef
sets a few __need_foo settings, so cstddef now doesn't work right with
libc++ after clang r207606.

The attached patch removes the __need_foo defines from libc++'s cstddef.
They were added with a cryptic commit message ""for ubuntu" years ago – I
think they're incorrect, and things still seem to work without them.
(libstdc++ doesn't set them either.) Maybe they were needed before clang
had r207606 – if so, this patch should also improve how libc++ works when
built with gcc.

This fixes PR19723, see the bug for some more information and discussion.

Ok?

Nico
Index: include/cstddef
===================================================================
--- include/cstddef     (revision 208680)
+++ include/cstddef     (working copy)
@@ -35,12 +35,6 @@
 
 #include <__config>
 
-#ifdef __GLIBC__
-#define __need_NULL
-#define __need_ptrdiff_t
-#define __need_size_t
-#endif  // __GLIBC__
-
 #include <stddef.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to