[llvm-branch-commits] [cfe-branch] r118554 - in /cfe/branches/Apple/whitney: lib/CodeGen/Mangle.cpp test/CodeGenCXX/mangle.cpp

Daniel Dunbar daniel at zuster.org
Tue Nov 9 09:31:33 PST 2010


Author: ddunbar
Date: Tue Nov  9 11:31:33 2010
New Revision: 118554

URL: http://llvm.org/viewvc/llvm-project?rev=118554&view=rev
Log:
Merge r118236:
--
Author: Anders Carlsson <andersca at mac.com>
Date:   Thu Nov 4 04:31:32 2010 +0000

    Mangle std::nullptr_t as specified by the Itanium C++ ABI.

Modified:
    cfe/branches/Apple/whitney/lib/CodeGen/Mangle.cpp
    cfe/branches/Apple/whitney/test/CodeGenCXX/mangle.cpp

Modified: cfe/branches/Apple/whitney/lib/CodeGen/Mangle.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/Apple/whitney/lib/CodeGen/Mangle.cpp?rev=118554&r1=118553&r2=118554&view=diff
==============================================================================
--- cfe/branches/Apple/whitney/lib/CodeGen/Mangle.cpp (original)
+++ cfe/branches/Apple/whitney/lib/CodeGen/Mangle.cpp Tue Nov  9 11:31:33 2010
@@ -1219,9 +1219,8 @@
   // UNSUPPORTED:    ::= Dh # IEEE 754r half-precision floating point (16 bits)
   //                 ::= Di # char32_t
   //                 ::= Ds # char16_t
+  //                 ::= Dn # std::nullptr_t (i.e., decltype(nullptr))
   //                 ::= u <source-name>    # vendor extended type
-  // From our point of view, std::nullptr_t is a builtin, but as far as mangling
-  // is concerned, it's a type called std::nullptr_t.
   switch (T->getKind()) {
   case BuiltinType::Void: Out << 'v'; break;
   case BuiltinType::Bool: Out << 'b'; break;
@@ -1244,7 +1243,7 @@
   case BuiltinType::Float: Out << 'f'; break;
   case BuiltinType::Double: Out << 'd'; break;
   case BuiltinType::LongDouble: Out << 'e'; break;
-  case BuiltinType::NullPtr: Out << "St9nullptr_t"; break;
+  case BuiltinType::NullPtr: Out << "Dn"; break;
 
   case BuiltinType::Overload:
   case BuiltinType::Dependent:

Modified: cfe/branches/Apple/whitney/test/CodeGenCXX/mangle.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/Apple/whitney/test/CodeGenCXX/mangle.cpp?rev=118554&r1=118553&r2=118554&view=diff
==============================================================================
--- cfe/branches/Apple/whitney/test/CodeGenCXX/mangle.cpp (original)
+++ cfe/branches/Apple/whitney/test/CodeGenCXX/mangle.cpp Tue Nov  9 11:31:33 2010
@@ -630,3 +630,8 @@
   // CHECK: define void @_ZN6test2112vla_arg_funcEiPA_i(
   void vla_arg_func(int X, int a[X][X]) {}
 }
+
+namespace test22 {
+  // CHECK: define void @_ZN6test221fEDn(
+  void f(decltype(nullptr)) { }
+}





More information about the llvm-branch-commits mailing list