1 http://code.google.com/p/google-glog/issues/detail?id=130
3 make the code work with all gcc targets
5 --- a/src/symbolize_unittest.cc
6 +++ b/src/symbolize_unittest.cc
7 @@ -60,9 +60,7 @@ using namespace GOOGLE_NAMESPACE;
10 # endif // __GNUC__ >= 4
11 -# if defined(__i386__) || defined(__x86_64__)
12 -# define TEST_X86_32_AND_64 1
13 -# endif // defined(__i386__) || defined(__x86_64__)
14 +# define TEST_WITH_LABEL_ADDRESSES
17 // A wrapper function for Symbolize() to make the unit test simple.
18 @@ -289,22 +287,24 @@ TEST(Symbolize, SymbolizeWithDemanglingStackConsumption) {
20 inline void* always_inline inline_func() {
21 register void *pc = NULL;
22 -#ifdef TEST_X86_32_AND_64
23 - __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
24 +#ifdef TEST_WITH_LABEL_ADDRESSES
31 void* ATTRIBUTE_NOINLINE non_inline_func() {
32 register void *pc = NULL;
33 -#ifdef TEST_X86_32_AND_64
34 - __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
35 +#ifdef TEST_WITH_LABEL_ADDRESSES
42 void ATTRIBUTE_NOINLINE TestWithPCInsideNonInlineFunction() {
43 -#if defined(TEST_X86_32_AND_64) && defined(HAVE_ATTRIBUTE_NOINLINE)
44 +#if defined(TEST_WITH_LABEL_ADDRESSES) && defined(HAVE_ATTRIBUTE_NOINLINE)
45 void *pc = non_inline_func();
46 const char *symbol = TrySymbolize(pc);
47 CHECK(symbol != NULL);
48 @@ -314,7 +314,7 @@ void ATTRIBUTE_NOINLINE TestWithPCInsideNonInlineFunction() {
51 void ATTRIBUTE_NOINLINE TestWithPCInsideInlineFunction() {
52 -#if defined(TEST_X86_32_AND_64) && defined(HAVE_ALWAYS_INLINE)
53 +#if defined(TEST_WITH_LABEL_ADDRESSES) && defined(HAVE_ALWAYS_INLINE)
54 void *pc = inline_func(); // Must be inlined.
55 const char *symbol = TrySymbolize(pc);
56 CHECK(symbol != NULL);