You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use database extensionals instead of their wrapper classes in two predicates
We are planning to change the charpred of `Function` in the CodeQL C++ library,
which means the code changed here will no longer compile. By switching to the
extensionals, the code will keep compiling.
DIL before:
```
noinline
`ConstantExprs::isFunction/1#600714be`(
/* Element::Element */ interned unique entity el
)
{
exists(interned dontcare string _, interned dontcare int _1 |
functions(el, _, _1)
) or
exists(interned dontcare int _ | exprparents(el, _, el))
}
noopt
`ConstantExprs::callHasNoTarget/1#e6e8caa4`(
/* @funbindexpr */ interned unique entity fc
)
{
exists(/* Function::Function */ interned entity f |
funbind(fc, f) and not(`ConstantExprs::isFunction/1#600714be`(f))
)
}
```
DIL after:
```
noinline
`ConstantExprs::isFunction/1#600714be`(/* @element */ interned unique entity el)
{
exists(interned dontcare string _, interned dontcare int _1 |
functions(el, _, _1)
) or
exists(interned dontcare int _ | exprparents(el, _, el))
}
noopt
`ConstantExprs::callHasNoTarget/1#e6e8caa4`(
/* @funbindexpr */ interned unique entity fc
)
{
exists(/* @function */ interned entity f |
funbind(fc, f) and not(`ConstantExprs::isFunction/1#600714be`(f))
)
}
```
0 commit comments