Avoid taking the address of a macro by checking to see if stdin is defined
authorReid Spencer <rspencer@reidspencer.com>
Thu, 11 Jan 2007 00:35:10 +0000 (00:35 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Thu, 11 Jan 2007 00:35:10 +0000 (00:35 +0000)
or not. This allows DynamicLibrary.cpp to compile on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33064 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/DynamicLibrary.cpp

index f0ab51b0f6150b409e20cc9657809177c916b55e..097e8b6ec4fcffb9d24afb817592fab5f37094a0 100644 (file)
@@ -167,10 +167,14 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char* symbolName) {
 #define EXPLICIT_SYMBOL(SYM) \
    if (!strcmp(symbolName, #SYM)) return &SYM
   // Try a few well known symbols just to give lli a shot at working.
+  // Note that on some systems stdin, etc. are macros so we have to
+  // avoid attempting to take the address of a macro :)
   {
+#ifndef stdin
     EXPLICIT_SYMBOL(stdin);
     EXPLICIT_SYMBOL(stdout);
     EXPLICIT_SYMBOL(stderr);
+#endif
   }
 #undef EXPLICIT_SYMBOL