diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-01-22 01:58:15 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-01-22 01:58:15 +0000 | 
| commit | b8c7fe9dc94f7c676601aaf3c6ab994259ac3e30 (patch) | |
| tree | ab35a35132067934ac2156157cac579231a1f7f9 /clang/lib | |
| parent | d5407dd2cd6587b33c0c0398df3f703e5f34406a (diff) | |
| download | bcm5719-llvm-b8c7fe9dc94f7c676601aaf3c6ab994259ac3e30.tar.gz bcm5719-llvm-b8c7fe9dc94f7c676601aaf3c6ab994259ac3e30.zip  | |
Debug info generation for rvalue references
llvm-svn: 124020
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 15 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.h | 1 | 
2 files changed, 10 insertions, 6 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index fb851dd2861..a98c32a8d0b 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -1226,6 +1226,12 @@ llvm::DIType CGDebugInfo::CreateType(const LValueReferenceType *Ty,                                 Ty, Ty->getPointeeType(), Unit);  } +llvm::DIType CGDebugInfo::CreateType(const RValueReferenceType *Ty,  +                                     llvm::DIFile Unit) { +  return CreatePointerLikeType(llvm::dwarf::DW_TAG_rvalue_reference_type,  +                               Ty, Ty->getPointeeType(), Unit); +} +  llvm::DIType CGDebugInfo::CreateType(const MemberPointerType *Ty,                                        llvm::DIFile U) {    QualType PointerDiffTy = CGM.getContext().getPointerDiffType(); @@ -1413,6 +1419,8 @@ llvm::DIType CGDebugInfo::CreateTypeNode(QualType Ty,    case Type::LValueReference:      return CreateType(cast<LValueReferenceType>(Ty), Unit); +  case Type::RValueReference: +    return CreateType(cast<RValueReferenceType>(Ty), Unit);    case Type::MemberPointer:      return CreateType(cast<MemberPointerType>(Ty), Unit); @@ -1426,12 +1434,7 @@ llvm::DIType CGDebugInfo::CreateTypeNode(QualType Ty,    case Type::TypeOf:    case Type::Decltype:      llvm_unreachable("type should have been unwrapped!"); -    return llvm::DIType(); -       -  case Type::RValueReference: -    // FIXME: Implement! -    Diag = "rvalue references"; -    break; +    return llvm::DIType();          }    assert(Diag && "Fall through without a diagnostic?"); diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h index 1d72cc18ea8..4b24d79c811 100644 --- a/clang/lib/CodeGen/CGDebugInfo.h +++ b/clang/lib/CodeGen/CGDebugInfo.h @@ -91,6 +91,7 @@ class CGDebugInfo {    llvm::DIType CreateType(const VectorType *Ty, llvm::DIFile F);    llvm::DIType CreateType(const ArrayType *Ty, llvm::DIFile F);    llvm::DIType CreateType(const LValueReferenceType *Ty, llvm::DIFile F); +  llvm::DIType CreateType(const RValueReferenceType *Ty, llvm::DIFile Unit);    llvm::DIType CreateType(const MemberPointerType *Ty, llvm::DIFile F);    llvm::DIType CreateEnumType(const EnumDecl *ED);    llvm::DIType getOrCreateMethodType(const CXXMethodDecl *Method,  | 

