Print this page
3853 __cplusplus change and headers incompatipility with clang

@@ -24,12 +24,10 @@
 
 
 #ifndef _MALLOC_H
 #define _MALLOC_H
 
-#pragma ident   "%Z%%M% %I%     %E% SMI"        /* SVr4.0 1.7   */
-
 #include <sys/types.h>
 
 #ifdef  __cplusplus
 extern "C" {
 #endif

@@ -59,25 +57,42 @@
         unsigned long keepcost; /* cost of enabling keep option */
 };
 
 #if defined(__STDC__)
 
+#if (!defined(_STRICT_STDC) && !defined(_XOPEN_OR_POSIX)) || \
+        defined(_XPG3)
+#if __cplusplus >= 199711L
+namespace std {
+#endif
+
 void *malloc(size_t);
 void free(void *);
 void *realloc(void *, size_t);
+void *calloc(size_t, size_t);
+
+#if __cplusplus >= 199711L
+} /* end of namespace std */
+
+using std::malloc;
+using std::free;
+using std::realloc;
+using std::calloc;
+#endif /* __cplusplus >= 199711L */
+#endif /* (!defined(_STRICT_STDC) && !defined(_XOPEN_OR_POSIX)) || ... */
+
 int mallopt(int, int);
 struct mallinfo mallinfo(void);
-void *calloc(size_t, size_t);
 
 #else
 
 void *malloc();
 void free();
 void *realloc();
+void *calloc();
 int mallopt();
 struct mallinfo mallinfo();
-void *calloc();
 
 #endif  /* __STDC__ */
 
 #ifdef  __cplusplus
 }