diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-09-26 02:36:12 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-09-26 02:36:12 +0000 |
commit | b826a00857718ff0a51336213a21cab02bd6fdf8 (patch) | |
tree | c7010a3358bffd0a53506aa681956c5f0e27a934 /clang/tools/libclang/CIndexUSRs.cpp | |
parent | 6e0605d6540da56bf778a4fb2598764cf004723a (diff) | |
download | bcm5719-llvm-b826a00857718ff0a51336213a21cab02bd6fdf8.tar.gz bcm5719-llvm-b826a00857718ff0a51336213a21cab02bd6fdf8.zip |
Fix the AST representation for non-type template arguments to encode
enough information so we can mangle them correctly in cases involving
dependent parameter types. (This specifically impacts cases involving
null pointers and cases involving parameters of reference type.)
Fix the mangler to use this information instead of trying to scavenge
it out of the parameter declaration.
<rdar://problem/12296776>.
llvm-svn: 164656
Diffstat (limited to 'clang/tools/libclang/CIndexUSRs.cpp')
-rw-r--r-- | clang/tools/libclang/CIndexUSRs.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/tools/libclang/CIndexUSRs.cpp b/clang/tools/libclang/CIndexUSRs.cpp index 4858276f67b..19b3f263a42 100644 --- a/clang/tools/libclang/CIndexUSRs.cpp +++ b/clang/tools/libclang/CIndexUSRs.cpp @@ -728,10 +728,12 @@ void USRGenerator::VisitTemplateArgument(const TemplateArgument &Arg) { break; case TemplateArgument::Declaration: - if (Decl *D = Arg.getAsDecl()) - Visit(D); + Visit(Arg.getAsDecl()); break; - + + case TemplateArgument::NullPtr: + break; + case TemplateArgument::TemplateExpansion: Out << 'P'; // pack expansion of... // Fall through |