[llvm-commits] [llvm-gcc-4.2] r63425 - /llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
Anton Korobeynikov
asl at math.spbu.ru
Fri Jan 30 13:50:00 PST 2009
Author: asl
Date: Fri Jan 30 15:50:00 2009
New Revision: 63425
URL: http://llvm.org/viewvc/llvm-project?rev=63425&view=rev
Log:
Relax alias-aliasee typechecking code and allow different types for alias
and aliasee if one can be bitcasted to another. This fixes PR3446.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=63425&r1=63424&r2=63425&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Fri Jan 30 15:50:00 2009
@@ -869,8 +869,8 @@
handleVisibility(decl, GA);
- if (V->getType() == GA->getType())
- V->replaceAllUsesWith(GA);
+ if (GA->getType()->canLosslesslyBitCastTo(V->getType()))
+ V->replaceAllUsesWith(ConstantExpr::getBitCast(GA, V->getType()));
else if (!V->use_empty()) {
error ("%J Alias %qD used with invalid type!", decl, decl);
timevar_pop(TV_LLVM_GLOBALS);
More information about the llvm-commits
mailing list