Check if WARN_UNUSED_RESULT and COMPILE_ASSERT are defined.

Works around a multiple definition error from webrtc and libjingle.

Corresponds to the libjingle change here:
https://critique.corp.google.com/#review/55489575-p10

TESTED=trybots
R=wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2809004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5025 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/system_wrappers/interface/compile_assert.h b/webrtc/system_wrappers/interface/compile_assert.h
index 0c8776d..cdeaa56 100644
--- a/webrtc/system_wrappers/interface/compile_assert.h
+++ b/webrtc/system_wrappers/interface/compile_assert.h
@@ -28,13 +28,16 @@
 // the expression is false, most compilers will issue a warning/error
 // containing the name of the variable.
 
+// TODO(ajm): Hack to avoid multiple definitions until the base/ of webrtc and
+// libjingle are merged.
+#if !defined(COMPILE_ASSERT)
 template <bool>
 struct CompileAssert {
 };
 
-#undef COMPILE_ASSERT
 #define COMPILE_ASSERT(expr, msg) \
   typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
+#endif  // COMPILE_ASSERT
 
 // Implementation details of COMPILE_ASSERT:
 //
diff --git a/webrtc/typedefs.h b/webrtc/typedefs.h
index dc206f2..35ccde4 100644
--- a/webrtc/typedefs.h
+++ b/webrtc/typedefs.h
@@ -95,10 +95,14 @@
 // Annotate a function indicating the caller must examine the return value.
 // Use like:
 //   int foo() WARN_UNUSED_RESULT;
+// TODO(ajm): Hack to avoid multiple definitions until the base/ of webrtc and
+// libjingle are merged.
+#if !defined(WARN_UNUSED_RESULT)
 #if defined(__GNUC__)
 #define WARN_UNUSED_RESULT __attribute__((warn_unused_result))
 #else
 #define WARN_UNUSED_RESULT
 #endif
+#endif  // WARN_UNUSED_RESULT
 
 #endif  // WEBRTC_TYPEDEFS_H_