@@ -196,7 +196,7 @@ namespace
196196 {
197197 auto size = clang_getArraySize (type);
198198 if (size != -1 )
199- return cpp_literal_expression::build (cpp_builtin_type::build (" unsigned long long " ),
199+ return cpp_literal_expression::build (cpp_builtin_type::build (cpp_ulonglong ),
200200 std::to_string (size));
201201
202202 auto spelling = get_type_spelling (type);
@@ -218,7 +218,7 @@ namespace
218218
219219 return size_expr.empty () ?
220220 nullptr :
221- cpp_unexposed_expression::build (cpp_builtin_type::build (" unsigned long long " ),
221+ cpp_unexposed_expression::build (cpp_builtin_type::build (cpp_ulonglong ),
222222 std::string (size_expr.rbegin (),
223223 size_expr.rend ()));
224224 }
@@ -503,31 +503,91 @@ namespace
503503 return cpp_unexposed_type::build (get_type_spelling (type).c_str ());
504504
505505 case CXType_Void:
506+ return make_leave_type (type,
507+ [](std::string&&) { return cpp_builtin_type::build (cpp_void); });
506508 case CXType_Bool:
507- case CXType_Char_U:
509+ return make_leave_type (type,
510+ [](std::string&&) { return cpp_builtin_type::build (cpp_bool); });
508511 case CXType_UChar:
509- case CXType_Char16:
510- case CXType_Char32:
512+ return make_leave_type (type, [](std::string&&) {
513+ return cpp_builtin_type::build (cpp_uchar);
514+ });
511515 case CXType_UShort:
516+ return make_leave_type (type, [](std::string&&) {
517+ return cpp_builtin_type::build (cpp_ushort);
518+ });
512519 case CXType_UInt:
520+ return make_leave_type (type,
521+ [](std::string&&) { return cpp_builtin_type::build (cpp_uint); });
513522 case CXType_ULong:
523+ return make_leave_type (type, [](std::string&&) {
524+ return cpp_builtin_type::build (cpp_ulong);
525+ });
514526 case CXType_ULongLong:
527+ return make_leave_type (type, [](std::string&&) {
528+ return cpp_builtin_type::build (cpp_ulonglong);
529+ });
515530 case CXType_UInt128:
516- case CXType_Char_S:
531+ return make_leave_type (type, [](std::string&&) {
532+ return cpp_builtin_type::build (cpp_uint128);
533+ });
517534 case CXType_SChar:
518- case CXType_WChar:
535+ return make_leave_type (type, [](std::string&&) {
536+ return cpp_builtin_type::build (cpp_schar);
537+ });
519538 case CXType_Short:
539+ return make_leave_type (type, [](std::string&&) {
540+ return cpp_builtin_type::build (cpp_short);
541+ });
520542 case CXType_Int:
543+ return make_leave_type (type,
544+ [](std::string&&) { return cpp_builtin_type::build (cpp_int); });
521545 case CXType_Long:
546+ return make_leave_type (type,
547+ [](std::string&&) { return cpp_builtin_type::build (cpp_long); });
522548 case CXType_LongLong:
549+ return make_leave_type (type, [](std::string&&) {
550+ return cpp_builtin_type::build (cpp_longlong);
551+ });
523552 case CXType_Int128:
553+ return make_leave_type (type, [](std::string&&) {
554+ return cpp_builtin_type::build (cpp_int128);
555+ });
524556 case CXType_Float:
557+ return make_leave_type (type, [](std::string&&) {
558+ return cpp_builtin_type::build (cpp_float);
559+ });
525560 case CXType_Double:
561+ return make_leave_type (type, [](std::string&&) {
562+ return cpp_builtin_type::build (cpp_double);
563+ });
526564 case CXType_LongDouble:
527- case CXType_NullPtr:
565+ return make_leave_type (type, [](std::string&&) {
566+ return cpp_builtin_type::build (cpp_longdouble);
567+ });
528568 case CXType_Float128:
529- return make_leave_type (type, [](std::string&& spelling) {
530- return cpp_builtin_type::build (std::move (spelling));
569+ return make_leave_type (type, [](std::string&&) {
570+ return cpp_builtin_type::build (cpp_float128);
571+ });
572+ case CXType_Char_U:
573+ case CXType_Char_S:
574+ return make_leave_type (type,
575+ [](std::string&&) { return cpp_builtin_type::build (cpp_char); });
576+ case CXType_Char16:
577+ return make_leave_type (type, [](std::string&&) {
578+ return cpp_builtin_type::build (cpp_char16);
579+ });
580+ case CXType_Char32:
581+ return make_leave_type (type, [](std::string&&) {
582+ return cpp_builtin_type::build (cpp_char32);
583+ });
584+ case CXType_WChar:
585+ return make_leave_type (type, [](std::string&&) {
586+ return cpp_builtin_type::build (cpp_wchar);
587+ });
588+ case CXType_NullPtr:
589+ return make_leave_type (type, [](std::string&&) {
590+ return cpp_builtin_type::build (cpp_nullptr);
531591 });
532592
533593 case CXType_Record:
0 commit comments