[cfe-commits] r64334 - /cfe/trunk/lib/AST/ASTContext.cpp

Fariborz Jahanian fjahanian at apple.com
Wed Feb 11 14:31:46 PST 2009


Author: fjahanian
Date: Wed Feb 11 16:31:45 2009
New Revision: 64334

URL: http://llvm.org/viewvc/llvm-project?rev=64334&view=rev
Log:
Patch to fix encoding in 64bit abi. With this patch
all but one dejagnu encoding tests for darwin
pass in nonfragile abi mode.

Modified:
    cfe/trunk/lib/AST/ASTContext.cpp

Modified: cfe/trunk/lib/AST/ASTContext.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=64334&r1=64333&r2=64334&view=diff

==============================================================================
--- cfe/trunk/lib/AST/ASTContext.cpp (original)
+++ cfe/trunk/lib/AST/ASTContext.cpp Wed Feb 11 16:31:45 2009
@@ -1969,13 +1969,19 @@
       case BuiltinType::UChar:      encoding = 'C'; break;
       case BuiltinType::UShort:     encoding = 'S'; break;
       case BuiltinType::UInt:       encoding = 'I'; break;
-      case BuiltinType::ULong:      encoding = 'L'; break;
+      case BuiltinType::ULong:      
+          encoding = 
+            (const_cast<ASTContext *>(this))->getIntWidth(T) == 32 ? 'L' : 'Q'; 
+          break;
       case BuiltinType::ULongLong:  encoding = 'Q'; break;
       case BuiltinType::Char_S:
       case BuiltinType::SChar:      encoding = 'c'; break;
       case BuiltinType::Short:      encoding = 's'; break;
       case BuiltinType::Int:        encoding = 'i'; break;
-      case BuiltinType::Long:       encoding = 'l'; break;
+      case BuiltinType::Long:       
+        encoding = 
+          (const_cast<ASTContext *>(this))->getIntWidth(T) == 32 ? 'l' : 'q'; 
+        break;
       case BuiltinType::LongLong:   encoding = 'q'; break;
       case BuiltinType::Float:      encoding = 'f'; break;
       case BuiltinType::Double:     encoding = 'd'; break;





More information about the cfe-commits mailing list