[cfe-commits] r139443 - in /cfe/trunk: lib/CodeGen/CGDebugInfo.cpp test/CodeGenCXX/debug-info-wchar.cpp
Devang Patel
dpatel at apple.com
Fri Sep 9 17:59:08 PDT 2011
I did not know this, I'll fix the patch.
-
Devang
On Sep 9, 2011, at 5:54 PM, Douglas Gregor <dgregor at apple.com> wrote:
>
> On Sep 9, 2011, at 5:44 PM, Devang Patel wrote:
>
>> Author: dpatel
>> Date: Fri Sep 9 19:44:49 2011
>> New Revision: 139443
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=139443&view=rev
>> Log:
>> Emit debug info for wchar_t.
>>
>> Added:
>> cfe/trunk/test/CodeGenCXX/debug-info-wchar.cpp
>> Modified:
>> cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
>>
>> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=139443&r1=139442&r2=139443&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
>> +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri Sep 9 19:44:49 2011
>> @@ -333,16 +333,20 @@
>> case BuiltinType::UChar:
>> case BuiltinType::Char_U: Encoding = llvm::dwarf::DW_ATE_unsigned_char; break;
>> case BuiltinType::Char_S:
>> + case BuiltinType::Char16:
>> + case BuiltinType::Char32:
>> case BuiltinType::SChar: Encoding = llvm::dwarf::DW_ATE_signed_char; break;
>
> char16_t and char32_t aren't simply signed character types. They are distinct types that need their own encoding. See, for example
>
> http://dwarfstd.org/ShowIssue.php?issue=090109.1&type=closed3
>
>> case BuiltinType::UShort:
>> case BuiltinType::UInt:
>> case BuiltinType::UInt128:
>> case BuiltinType::ULong:
>> + case BuiltinType::WChar_U:
>> case BuiltinType::ULongLong: Encoding = llvm::dwarf::DW_ATE_unsigned; break;
>> case BuiltinType::Short:
>> case BuiltinType::Int:
>> case BuiltinType::Int128:
>> case BuiltinType::Long:
>> + case BuiltinType::WChar_S:
>> case BuiltinType::LongLong: Encoding = llvm::dwarf::DW_ATE_signed; break;
>> case BuiltinType::Bool: Encoding = llvm::dwarf::DW_ATE_boolean; break;
>> case BuiltinType::Float:
>
> wchar_t is also its own distinct type, which DWARF encodes as DW_ATE_wchar_t. It's not simply a signed or unsigned value.
>
> - Doug
>
More information about the cfe-commits
mailing list