Index: src/SymTab/Demangle.cc
===================================================================
--- src/SymTab/Demangle.cc	(revision 90ed5388735a86e7863227deeb7424da78adad90)
+++ src/SymTab/Demangle.cc	(revision 2f9768ff3e5bff4eeeafc8b20dbb07448db3e706)
@@ -350,4 +350,5 @@
 				Type * parseVoid(Type::Qualifiers tq);
 				Type * parsePointer(Type::Qualifiers tq);
+				Type * parseArray(Type::Qualifiers tq);
 				Type * parseStruct(Type::Qualifiers tq);
 
@@ -368,4 +369,5 @@
 				parsers.emplace_back(Encoding::function, [this](Type::Qualifiers tq) { return parseFunction(tq); });
 				parsers.emplace_back(Encoding::pointer, [this](Type::Qualifiers tq) { return parsePointer(tq); });
+				parsers.emplace_back(Encoding::array, [this](Type::Qualifiers tq) { return parseArray(tq); });
 				parsers.emplace_back(Encoding::tuple, [this](Type::Qualifiers tq) { return parseTuple(tq); });
 				parsers.emplace_back(Encoding::struct_t, [this](Type::Qualifiers tq) { return parseStruct(tq); });
@@ -475,4 +477,13 @@
 			}
 
+			Type * StringView::parseArray(Type::Qualifiers tq) {
+				PRINT( std::cerr << "array..." << std::endl; )
+				size_t length;
+				if (! extractNumber(length)) return nullptr;
+				Type * t = parseType();
+				if (! t) return nullptr;
+				return new ArrayType( tq, t, new ConstantExpr( Constant::from_ulong(length) ), false, false );
+			}
+
 			Type * StringView::parseStruct(Type::Qualifiers tq) {
 				PRINT( std::cerr << "struct..." << std::endl; )
