From 818a3676aa34b0ec76c9b346c0794e8c4376585d Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Mon, 8 Dec 2014 20:00:33 +0000 Subject: [PATCH] Remove use of GCC-style intrinsics, as they are non-portable. Differential Revision: http://reviews.llvm.org/D6567 llvm-svn: 223687 --- lldb/source/Symbol/CompactUnwindInfo.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lldb/source/Symbol/CompactUnwindInfo.cpp b/lldb/source/Symbol/CompactUnwindInfo.cpp index 91bb2a471e0a..db46bf5252b7 100644 --- a/lldb/source/Symbol/CompactUnwindInfo.cpp +++ b/lldb/source/Symbol/CompactUnwindInfo.cpp @@ -21,6 +21,8 @@ #include "lldb/Symbol/ObjectFile.h" #include "lldb/Symbol/UnwindPlan.h" +#include "llvm/Support/MathExtras.h" + using namespace lldb; using namespace lldb_private; @@ -109,7 +111,8 @@ namespace lldb_private { #endif #define EXTRACT_BITS(value, mask) \ - ( (value >> __builtin_ctz(mask)) & (((1 << __builtin_popcount(mask)))-1) ) + ( (value >> llvm::countTrailingZeros(static_cast(mask), llvm::ZB_Width)) & \ + (((1 << llvm::CountPopulation_32(static_cast(mask))))-1) )