Author: rsmith Date: Thu Nov 5 15:16:22 2015 New Revision: 252211 URL: http://llvm.org/viewvc/llvm-project?rev=252211&view=rev Log: PR25368: Replace workaround for build failure with modules enabled with a fix for the root cause. The 'using llvm::isa;' declaration in Basic/LLVM.h only pulls the declarations of llvm::isa that were declared prior to it into namespace clang. In a modules build, this is a hermetic set of just the declarations from LLVM. In a non-modules build, we happened to also pull the declaration from lib/CodeGen/Address.h into namespace clang, which made the code in question accidentally compile.
Modified: cfe/trunk/lib/CodeGen/Address.h cfe/trunk/lib/CodeGen/CGExprConstant.cpp Modified: cfe/trunk/lib/CodeGen/Address.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/Address.h?rev=252211&r1=252210&r2=252211&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/Address.h (original) +++ cfe/trunk/lib/CodeGen/Address.h Thu Nov 5 15:16:22 2015 @@ -116,4 +116,11 @@ namespace llvm { } } +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 Modified: cfe/trunk/lib/CodeGen/CGExprConstant.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprConstant.cpp?rev=252211&r1=252210&r2=252211&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGExprConstant.cpp (original) +++ cfe/trunk/lib/CodeGen/CGExprConstant.cpp Thu Nov 5 15:16:22 2015 @@ -1038,7 +1038,7 @@ public: unsigned Type = cast<PredefinedExpr>(E)->getIdentType(); if (CGF) { LValue Res = CGF->EmitPredefinedLValue(cast<PredefinedExpr>(E)); - return llvm::cast<ConstantAddress>(Res.getAddress()); + return cast<ConstantAddress>(Res.getAddress()); } else if (Type == PredefinedExpr::PrettyFunction) { return CGM.GetAddrOfConstantCString("top level", ".tmp"); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits