Skip to content

Commit fa84888

Browse files
committed
AST: address-of function is not compile-time
This fixes a `static_assert` by converting it to an `assert`. The address-of on a function is not a compile time constant and can only be checked at runtime. This will reduce the check to !NDEBUG builds only but actually performs the intended check.
1 parent ba149d9 commit fa84888

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

lib/AST/ProtocolConformance.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,8 @@ switch (getKind()) { \
199199
case ProtocolConformanceKind::Inherited: \
200200
return cast<InheritedProtocolConformance>(this)->Method Args; \
201201
case ProtocolConformanceKind::Builtin: \
202-
static_assert(&ProtocolConformance::Method != \
203-
&BuiltinProtocolConformance::Method, \
204-
"Must override BuiltinProtocolConformance::" #Method); \
202+
assert(&ProtocolConformance::Method != &BuiltinProtocolConformance::Method \
203+
&& "Must override BuiltinProtocolConformance::" #Method); \
205204
return cast<BuiltinProtocolConformance>(this)->Method Args; \
206205
} \
207206
llvm_unreachable("bad ProtocolConformanceKind");

0 commit comments

Comments
 (0)