(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1z/
constexpr-if36.C
// 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" }