As the repro included shows:

    A := 90.0;
    B := 30.0 * -Sin(A);

fails with a missing operand compile-time error, but:

    A := 90.0;
    B := -Sin(A);
    B := 30 * B;

works.

with Ada.Numerics.Elementary_Functions;
use Ada.Numerics.Elementary_Functions;

procedure X is

  A : float;
  B : float;

begin
  A := 90.0;
  -- This works.
  B := -Sin(A);
  B := B * 30.0;
  -- This produces a compile-time error: x.adb:15:14: missing operand
  B := 30.0 * -Sin(A);
end;

-- 
           Summary: missing operand: 90.0 * -Sin(A)
           Product: gcc
           Version: 3.3.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ada
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dave at synergy dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i586-suse-linux
  GCC host triplet: i586-suse-linux
GCC target triplet: i586-suse-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19539

Reply via email to