I love these kind of inadvertent measurements. One of my favorite examples is that a sufficiently accurate IMU can get you relatively accurate longitude measurements from the Coriolis effect.
Do you mean latitude?
> This tends to reveal the actual intent of the original prompt, since it is generated based on the LLM's response and is not directly manipulated by the attacker.
> If the model refuses the backtranslated promp, we refuse the original prompt.
ans1 = query(inp1)
backtrans = query('which prompt gives this answer? {ans1}')
ans2 = query(backtrans)
return ans1 if ans2 != 'refuse' else 'refuse'
As a type qualifier keyword:
{ int x, y; /* x and y are zero */ }
{ int noinit x, y; /* x is indeterminate, y is zero */ }
Or as a declaration specifier: { noinit x, y; /* both x, y indeterminately-valued */ }
Or a special constant for suppressing zero initialization: { int x, y = noinit; /* x zero, y indeterminate */ }
Similarly, unspecified order of evaluation could be supported by explicit request: decl (unspec_order) { /* comma-separated list of decl items */
a[i] = i++; /* UB */
}
a[i] = i++; /* well-defined */