Index: base/profiler/test_support_library.cc |
diff --git a/base/profiler/test_support_library.cc b/base/profiler/test_support_library.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..035f8f70c053a46d0e50499d3b7b334a5475136b |
--- /dev/null |
+++ b/base/profiler/test_support_library.cc |
@@ -0,0 +1,30 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Note: there is intentionally no header file associated with this library so |
+// we don't risk implicitly demand loading it by accessing a symbol. |
+ |
+#if defined(WIN32) |
+#define BASE_PROFILER_TEST_SUPPORT_LIBRARY_EXPORT __declspec(dllexport) |
+#else // defined(WIN32) |
+#define BASE_PROFILER_TEST_SUPPORT_LIBRARY_EXPORT __attribute__((visibility("default"))) |
+#endif |
+ |
+namespace base { |
+ |
+// Must be defined in an extern "C" block so we can look up the unmangled name. |
+extern "C" { |
+ |
+BASE_PROFILER_TEST_SUPPORT_LIBRARY_EXPORT void InvokeCallbackFunction( |
+ void (*function)(void*), |
+ void* arg) { |
+ function(arg); |
+ // Prevent tail call. |
+ volatile int i = 0; |
+ i = 1; |
+} |
+ |
+} // extern "C" |
+ |
+} // namespace base |