diff options
author | Eric Christopher <echristo@apple.com> | 2012-08-07 00:14:25 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2012-08-07 00:14:25 +0000 |
commit | 363e5acfd93aa62d94e02b674e753257389643b1 (patch) | |
tree | a3e5b8911ddec007aef879e5363e41ff6b250293 /test/CodeGenCXX/debug-info-template-quals.cpp | |
parent | b019489d42da42a2071986d74e454e39bde59039 (diff) |
Make sure when we get the replacement type for a template argument
that we attach the lost qualifiers.
Fixes rdar://11882155
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161368 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/debug-info-template-quals.cpp')
-rw-r--r-- | test/CodeGenCXX/debug-info-template-quals.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/CodeGenCXX/debug-info-template-quals.cpp b/test/CodeGenCXX/debug-info-template-quals.cpp new file mode 100644 index 0000000000..ab7136bf54 --- /dev/null +++ b/test/CodeGenCXX/debug-info-template-quals.cpp @@ -0,0 +1,23 @@ +// RUN: %clang -emit-llvm -g -S %s -o - | FileCheck %s + +template<typename _CharT> +struct basic_string { + + basic_string& + assign(const _CharT* __s) + { + return *this; + } +}; + +void foo (const char *c) { + basic_string<char> str; + str.assign(c); +} + +// CHECK: [[P:.*]] = metadata !{i32 {{.*}}, metadata [[CON:.*]]} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from ] +// CHECK: [[CON]] = metadata !{i32 {{.*}}, metadata [[CH:.*]]} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from char] +// CHECK: [[CH]] = metadata !{i32 {{.*}}, metadata !"char", {{.*}}} ; [ DW_TAG_base_type ] [char] [line 0, size 8, align 8, offset 0, enc DW_ATE_signed_char] +// CHECK: metadata !{i32 {{.*}}, metadata !"_ZN12basic_stringIcE6assignEPKc", metadata !6, i32 7, metadata [[TYPE:.*]], i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, %struct.basic_string* (%struct.basic_string*, i8*)* @_ZN12basic_stringIcE6assignEPKc, null, metadata !18, metadata !1, i32 8} ; [ DW_TAG_subprogram ] [line 7] [def] [scope 8] [assign] +// CHECK: [[TYPE]] = metadata !{i32 {{.*}}, null, metadata [[ARGS:.*]], i32 0, i32 0} +// CHECK: [[ARGS]] = metadata !{metadata !15, metadata !23, metadata [[P]]} |