// PR c++/103310
// Test that only manifestly-constant-evaluated comparisons lock a symbol's
// weakness.
// { dg-do compile { target c++17 } }
// { dg-additional-options "-fdelete-null-pointer-checks" }
extern void weakfn1 (void);
extern void weakfn2 (void);
void call_weakfn (void)
{
  if (weakfn1)
    weakfn1 ();
  if constexpr (weakfn2)
    weakfn2 ();
}
extern void weakfn1 (void)  __attribute__((weak));
extern void weakfn2 (void)  __attribute__((weak)); // { dg-error "declared weak after being used" }