File tree Expand file tree Collapse file tree 4 files changed +19
-1
lines changed Expand file tree Collapse file tree 4 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -147,6 +147,8 @@ Bug Fixes to Attribute Support
147147Bug Fixes to C++ Support
148148^^^^^^^^^^^^^^^^^^^^^^^^
149149
150+ - Fixed a crash when an expression with a dependent ``__typeof__ `` type is used as the operand of a unary operator. (#GH97646)
151+
150152Bug Fixes to AST Handling
151153^^^^^^^^^^^^^^^^^^^^^^^^^
152154
Original file line number Diff line number Diff line change @@ -8434,7 +8434,7 @@ inline bool Type::isUndeducedType() const {
84348434// / Determines whether this is a type for which one can define
84358435// / an overloaded operator.
84368436inline bool Type::isOverloadableType () const {
8437- if (!CanonicalType-> isDependentType ())
8437+ if (!isDependentType ())
84388438 return isRecordType () || isEnumeralType ();
84398439 return !isArrayType () && !isFunctionType () && !isAnyPointerType () &&
84408440 !isMemberPointerType ();
Original file line number Diff line number Diff line change @@ -139,6 +139,14 @@ namespace GH58674 {
139139 }
140140}
141141
142+ namespace GH97646 {
143+ template <bool B>
144+ void f () {
145+ decltype (B) x = false ;
146+ !x;
147+ }
148+ }
149+
142150template <typename >
143151class conditional {
144152};
Original file line number Diff line number Diff line change 33typeof_unqual (int ) u = 12 ; // expected-error {{expected function body after function declarator}}
44__typeof_unqual (int ) _u = 12;
55__typeof_unqual__ (int ) __u = 12;
6+
7+ namespace GH97646 {
8+ template <bool B>
9+ void f () {
10+ __typeof__ (B) x = false ;
11+ !x;
12+ }
13+ }
You can’t perform that action at this time.
0 commit comments