http://code.google.com/p/google-glog/issues/detail?id=130

make the code work with all gcc targets

--- a/src/symbolize_unittest.cc
+++ b/src/symbolize_unittest.cc
@@ -60,9 +60,7 @@ using namespace GOOGLE_NAMESPACE;
 #    endif  // __i386__
 #  else
 #  endif  // __GNUC__ >= 4
-#  if defined(__i386__) || defined(__x86_64__)
-#    define TEST_X86_32_AND_64 1
-#  endif  // defined(__i386__) || defined(__x86_64__)
+#  define TEST_WITH_LABEL_ADDRESSES
 #endif
 
 // A wrapper function for Symbolize() to make the unit test simple.
@@ -289,22 +287,24 @@ TEST(Symbolize, SymbolizeWithDemanglingStackConsumption) {
 extern "C" {
 inline void* always_inline inline_func() {
   register void *pc = NULL;
-#ifdef TEST_X86_32_AND_64
-  __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
+#ifdef TEST_WITH_LABEL_ADDRESSES
+  pc = &&curr_pc;
+  curr_pc:
 #endif
   return pc;
 }
 
 void* ATTRIBUTE_NOINLINE non_inline_func() {
   register void *pc = NULL;
-#ifdef TEST_X86_32_AND_64
-  __asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
+#ifdef TEST_WITH_LABEL_ADDRESSES
+  pc = &&curr_pc;
+  curr_pc:
 #endif
   return pc;
 }
 
 void ATTRIBUTE_NOINLINE TestWithPCInsideNonInlineFunction() {
-#if defined(TEST_X86_32_AND_64) && defined(HAVE_ATTRIBUTE_NOINLINE)
+#if defined(TEST_WITH_LABEL_ADDRESSES) && defined(HAVE_ATTRIBUTE_NOINLINE)
   void *pc = non_inline_func();
   const char *symbol = TrySymbolize(pc);
   CHECK(symbol != NULL);
@@ -314,7 +314,7 @@ void ATTRIBUTE_NOINLINE TestWithPCInsideNonInlineFunction() {
 }
 
 void ATTRIBUTE_NOINLINE TestWithPCInsideInlineFunction() {
-#if defined(TEST_X86_32_AND_64) && defined(HAVE_ALWAYS_INLINE)
+#if defined(TEST_WITH_LABEL_ADDRESSES) && defined(HAVE_ALWAYS_INLINE)
   void *pc = inline_func();  // Must be inlined.
   const char *symbol = TrySymbolize(pc);
   CHECK(symbol != NULL);
