clang attribute wrappers
[folly.git] / folly / Benchmark.h
index 3478d10f11cf22ac3ce428290cbc2fa0b1c2c29e..c25ca2800f2907b62da7250553036b9881bb2c8c 100644 (file)
@@ -257,11 +257,19 @@ void doNotOptimizeAway(T&& datum) {
 
 #pragma optimize("", on)
 
+#elif defined(__clang__)
+
+template <class T>
+__attribute__((__optnone__)) void doNotOptimizeAway(T&& datum) {
+}
+
 #else
+
 template <class T>
 void doNotOptimizeAway(T&& datum) {
   asm volatile("" : "+r" (datum));
 }
+
 #endif
 
 } // namespace folly