[PATCH] Improve gen-libm-test.pl LIT() application

Joseph Myers joseph@codesourcery.com
Thu Aug 4 16:52:00 GMT 2016


On Thu, 4 Aug 2016, Paul E. Murphy wrote:

> As I understand it, the only incorrect splitting occurs for
> some inputs of the form:
> 
> {integer, identifier} op {integer,real}
> 
> Which, will ultimately only apply LIT() to the expressions
> containing a real value as the second operand.  But, LIT is
> applied to the entire expression.
> 
> So you might end up passing things like "MAX_EXP+1", "0xe+1.0f"
> to _apply_lit.  The former does happen, the latter is a
> constructed example.
> 
> If more complicated expressions are used in libm-test.inc, or
> this workaround proven insufficient, we should refactor
> libm-test.inc to remove the need for this hack.

How about putting spaces around the operators in libm-test.inc in all 
cases where you need to split on operators, and then making the code split 
on spaces rather than needing to do more complicated lexing and 
substitutions to identify tokens?  Spaces should be present anyway in 
accordance with the GNU Coding Standards.

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Libc-alpha mailing list