}
SysRes;
#elif defined(VGO_darwin)
+typedef
+ enum {
+ SysRes_MACH=40, // MACH, result is _wLO
+ SysRes_MDEP, // MDEP, result is _wLO
+ SysRes_UNIX_OK, // UNIX, success, result is _wHI:_wLO
+ SysRes_UNIX_ERR // UNIX, error, error is _wHI:_wLO
+ }
+ SysResMode;
typedef
struct {
UWord _wLO;
UWord _wHI;
- enum {
- SysRes_MACH=40, // MACH, result is _wLO
- SysRes_MDEP, // MDEP, result is _wLO
- SysRes_UNIX_OK, // UNIX, success, result is _wHI:_wLO
- SysRes_UNIX_ERR // UNIX, error, error is _wHI:_wLO
- } _mode;
+ SysResMode _mode;
}
SysRes;
#else
#define tl_assert(expr) \
((void) ((expr) ? 0 : \
- (VG_(assert_fail) (/*isCore?*/False, #expr, \
- __FILE__, __LINE__, __PRETTY_FUNCTION__, \
- ""), \
+ (VG_(assert_fail) (/*isCore?*/False, (const Char*)#expr, \
+ (const Char*)__FILE__, __LINE__, \
+ (const Char*)__PRETTY_FUNCTION__, \
+ (const HChar*)""), \
0)))
#define tl_assert2(expr, format, args...) \
((void) ((expr) ? 0 : \
- (VG_(assert_fail) (/*isCore?*/False, #expr, \
- __FILE__, __LINE__, __PRETTY_FUNCTION__, \
+ (VG_(assert_fail) (/*isCore?*/False, (const Char*)#expr, \
+ (const Char*)__FILE__, __LINE__, \
+ (const Char*)__PRETTY_FUNCTION__, \
format, ##args), \
0)))
tls \
tls.so \
tls2.so \
+ valgrind_cpp_test \
vgprintf \
coolo_sigaction \
gxx304
tls2_so_LDFLAGS = -shared
endif
+valgrind_cpp_test_SOURCES = valgrind_cpp_test.cpp
+valgrind_cpp_test_LDADD = -lstdc++
+
# C++ tests
coolo_sigaction_SOURCES = coolo_sigaction.cpp
gxx304_SOURCES = gxx304.cpp
--- /dev/null
+// Test program to verify whether the Valgrind header files compile fine
+// with a C++ compiler.
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "pub_tool_basics.h"
+#include "pub_tool_libcassert.h"
+#include "pub_tool_libcbase.h"
+#include "pub_tool_mallocfree.h"
+#include "pub_tool_libcprint.h"
+#include "pub_tool_libcfile.h"
+#include "pub_tool_libcproc.h"
+#include "pub_tool_vki.h"
+#include "pub_tool_threadstate.h"
+#include "pub_tool_errormgr.h"
+#include "pub_tool_options.h"
+#include "pub_tool_machine.h"
+#include "pub_tool_debuginfo.h"
+#include "pub_tool_seqmatch.h"
+#include "pub_tool_tooliface.h"
+#include "pub_tool_options.h"
+
+#if defined(VGO_darwin)
+int CheckSys()
+{
+ return SysRes_MACH;
+}
+#endif
+
+void CheckAssert(int x)
+{
+ tl_assert(x);
+ tl_assert2(x, "fail");
+}
+
+int main(int argc, char** argv)
+{
+ fprintf(stderr, "Compilation succeeded.\n");
+ return 0;
+}
+
+void VG_(assert_fail)(Bool isCore, const Char* expr, const Char* file,
+ Int line, const Char* fn, const HChar* format, ... )
+{
+ abort();
+}