r259598 - Work around build failure due to GCC 4.8.1 bug. We don't completely understand

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 2 15:17:09 PST 2016


Hans, this fixes a compile failure with one of our supported host
compilers (GCC 4.8.1). Can we get this patch into 3.8?

On Tue, Feb 2, 2016 at 3:11 PM, Richard Smith via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> Author: rsmith
> Date: Tue Feb  2 17:11:49 2016
> New Revision: 259598
>
> URL: http://llvm.org/viewvc/llvm-project?rev=259598&view=rev
> Log:
> Work around build failure due to GCC 4.8.1 bug. We don't completely understand
> the details of the bug, but avoiding overloading llvm::cast with another
> function template sidesteps it.
>
> See gcc.gnu.org/PR58022 for details of the bug, and llvm.org/PR26362 for more
> backgound on how it manifested in Clang. Patch by Igor Sugak!
>
> Modified:
>     cfe/trunk/lib/CodeGen/Address.h
>
> Modified: cfe/trunk/lib/CodeGen/Address.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/Address.h?rev=259598&r1=259597&r2=259598&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/Address.h (original)
> +++ cfe/trunk/lib/CodeGen/Address.h Tue Feb  2 17:11:49 2016
> @@ -104,23 +104,15 @@ public:
>  };
>
>  }
> -}
>
> -namespace llvm {
> -  // Present a minimal LLVM-like casting interface.
> -  template <class U> inline U cast(clang::CodeGen::Address addr) {
> -    return U::castImpl(addr);
> -  }
> -  template <class U> inline bool isa(clang::CodeGen::Address addr) {
> -    return U::isaImpl(addr);
> -  }
> +// Present a minimal LLVM-like casting interface.
> +template <class U> inline U cast(CodeGen::Address addr) {
> +  return U::castImpl(addr);
> +}
> +template <class U> inline bool isa(CodeGen::Address addr) {
> +  return U::isaImpl(addr);
>  }
>
> -namespace clang {
> -  // Make our custom isa and cast available in namespace clang, to mirror
> -  // what we do for LLVM's versions in Basic/LLVM.h.
> -  using llvm::isa;
> -  using llvm::cast;
>  }
>
>  #endif
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list