// Contract condition functions should be local symbols in a comdat group with | |
// the guarded function. | |
// { dg-do compile { target { c++20 && comdat_group } } } | |
// { dg-additional-options -fcontracts } | |
// { dg-final { scan-assembler-not "_Z1fi.pre,comdat" } } | |
// { dg-final { scan-assembler-not {(weak|globl)[^\n]*_Z1fi.pre} } } | |
inline int f(int i) | |
[[ pre: i > 0 ]] | |
{ | |
return i; | |
} | |
int main() | |
{ | |
if (f(42) != 42) | |
__builtin_abort (); | |
} |