Skip to content

Commit 91a848b

Browse files
committed
Revert "[Demangle] demangle builtin type transformations"
This reverts commit 31cc069.
1 parent 31cc069 commit 91a848b

File tree

5 files changed

+2
-57
lines changed

5 files changed

+2
-57
lines changed

libcxxabi/src/demangle/ItaniumDemangle.h

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -534,23 +534,6 @@ class ElaboratedTypeSpefType : public Node {
534534
}
535535
};
536536

537-
class TransformedType : public Node {
538-
StringView Transform;
539-
Node *BaseType;
540-
public:
541-
TransformedType(StringView Transform_, Node *BaseType_)
542-
: Node(KTransformedType), Transform(Transform_), BaseType(BaseType_) {}
543-
544-
template<typename Fn> void match(Fn F) const { F(Transform, BaseType); }
545-
546-
void printLeft(OutputBuffer &OB) const override {
547-
OB += Transform;
548-
OB += '(';
549-
BaseType->print(OB);
550-
OB += ')';
551-
}
552-
};
553-
554537
struct AbiTagAttr : Node {
555538
Node *Base;
556539
std::string_view Tag;
@@ -3911,15 +3894,7 @@ Node *AbstractManglingParser<Derived, Alloc>::parseType() {
39113894
// Typically, <builtin-type>s are not considered substitution candidates,
39123895
// but the exception to that exception is vendor extended types (Itanium C++
39133896
// ABI 5.9.1).
3914-
if (consumeIf('I')) {
3915-
Node *BaseType = parseType();
3916-
if (BaseType == nullptr)
3917-
return nullptr;
3918-
if (!consumeIf('E'))
3919-
return nullptr;
3920-
Result = make<TransformedType>(Res, BaseType);
3921-
} else
3922-
Result = make<NameType>(Res);
3897+
Result = make<NameType>(Res);
39233898
break;
39243899
}
39253900
case 'D':

libcxxabi/src/demangle/ItaniumNodes.def

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ NODE(QualType)
1919
NODE(ConversionOperatorType)
2020
NODE(PostfixQualifiedType)
2121
NODE(ElaboratedTypeSpefType)
22-
NODE(TransformedType)
2322
NODE(NameType)
2423
NODE(AbiTagAttr)
2524
NODE(EnableIfAttr)

libcxxabi/test/test_demangle.pass.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30114,9 +30114,6 @@ const char* cases[][2] =
3011430114
" std::allocator<char>>::basic_string()"},
3011530115
{"_ZN1SB8ctor_tagC2Ev", "S[abi:ctor_tag]::S()"},
3011630116
{"_ZN1SB8ctor_tagD2Ev", "S[abi:ctor_tag]::~S()"},
30117-
30118-
// clang builtin type transform
30119-
{"_Z2f5IiEvu7__decayIT_E", "void f5<int>(__decay(int))"},
3012030117
};
3012130118

3012230119
const unsigned N = sizeof(cases) / sizeof(cases[0]);

llvm/include/llvm/Demangle/ItaniumDemangle.h

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -528,23 +528,6 @@ class ElaboratedTypeSpefType : public Node {
528528
}
529529
};
530530

531-
class TransformedType : public Node {
532-
StringView Transform;
533-
Node *BaseType;
534-
public:
535-
TransformedType(StringView Transform_, Node *BaseType_)
536-
: Node(KTransformedType), Transform(Transform_), BaseType(BaseType_) {}
537-
538-
template<typename Fn> void match(Fn F) const { F(Transform, BaseType); }
539-
540-
void printLeft(OutputBuffer &OB) const override {
541-
OB += Transform;
542-
OB += '(';
543-
BaseType->print(OB);
544-
OB += ')';
545-
}
546-
};
547-
548531
struct AbiTagAttr : Node {
549532
Node *Base;
550533
std::string_view Tag;
@@ -3906,15 +3889,7 @@ Node *AbstractManglingParser<Derived, Alloc>::parseType() {
39063889
// Typically, <builtin-type>s are not considered substitution candidates,
39073890
// but the exception to that exception is vendor extended types (Itanium C++
39083891
// ABI 5.9.1).
3909-
if (consumeIf('I')) {
3910-
Node *BaseType = parseType();
3911-
if (BaseType == nullptr)
3912-
return nullptr;
3913-
if (!consumeIf('E'))
3914-
return nullptr;
3915-
Result = make<TransformedType>(Res, BaseType);
3916-
} else
3917-
Result = make<NameType>(Res);
3892+
Result = make<NameType>(Res);
39183893
break;
39193894
}
39203895
case 'D':

llvm/include/llvm/Demangle/ItaniumNodes.def

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ NODE(QualType)
1919
NODE(ConversionOperatorType)
2020
NODE(PostfixQualifiedType)
2121
NODE(ElaboratedTypeSpefType)
22-
NODE(TransformedType)
2322
NODE(NameType)
2423
NODE(AbiTagAttr)
2524
NODE(EnableIfAttr)

0 commit comments

Comments
 (0)