[Ada] Detect infinite loops with operators in exit conditions
To warn about infinite loops we detect variables referenced in loop exit
conditions. We handle references within boolean operators, i.e.
comparison and negation, which are likely to appear at the top level of
the condition (e.g. "X > 0"). However, we can easily handle all
operators, because they are likely to appear inside the condition (e.g.
"abs (X) > 0.0").
Cleanup related to a new restriction No_Uninitialized_Local_Scalars.
gcc/ada/
* sem_warn.adb (Find_Var): Detect all operators; replace
"condition" to "expression" in comments, because when this
routine is called recursively it no longer examines the
condition.
(Is_Suspicious_Function_Name): Reduce scope of a local variable
to avoid shadowing with a parameter of a nested
Substring_Present function.