[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