comp.lang.ada
 help / color / mirror / Atom feed
* Comparison with 0 distorts Long_Long_Integer
@ 1998-01-14  0:00 Dmitriy Anisimkov
  1998-01-14  0:00 ` Robert Dewar
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitriy Anisimkov @ 1998-01-14  0:00 UTC (permalink / raw)



I'm use GNAT-3-10 for Win32 and found the BUG :
--------------------------------
with Text_Io,Machine_Code;
procedure Rli is
   use Text_Io;    

   subtype IComp is Long_Long_Integer;
   package Comp_Io is new Integer_IO(IComp); use Comp_Io;

   C : constant Icomp := 16#1234_0000_0000#;
   Cb : Icomp;
begin
   Cb := C;
   if Cb=0 then 
-- Comparison with 0 distorts Long_Long_Integer
      null;
   end if;
   if C/=Cb then
-- it's wrong
      Put(" C ="); Put(C,0,16); New_Line;
      Put(" Cb="); Put(Cb,0,16); New_Line;
   end if;
end Rli;
-------------------------------
same function in C  :

/**************************/
#include <stdio.h>
int main(void){
  signed long long int c = 0x123400000000L;
  signed long long int cb;
  cb = c;
  if(cb==0L){
    printf("Comparison with 0 distorts signed long long int");
  }
  if (c!=cb){
    printf("%l %l",c,cb);
  }
  return 0;
}
/**************************/

from C code

  if(cb==0L){...

generates assembler code

/ GNU C version 2.7.2 (i586-pc-mingw32) compiled by GNU C version 2.7.2.
...
	movl -12(%ebp),%edx
	orl %edx,-16(%ebp) ; Corruption
	cmpl $0,-16(%ebp)
	jne L2 

I think, it must be 

	movl -12(%ebp),%edx
	orl -16(%ebp),%edx
	cmpl $0,%edx
	jne L2 


Does anybody know how to correct this ? May be it is possible to change any
EXE files ?





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Comparison with 0 distorts Long_Long_Integer
  1998-01-14  0:00 Comparison with 0 distorts Long_Long_Integer Dmitriy Anisimkov
@ 1998-01-14  0:00 ` Robert Dewar
  1998-01-15  0:00   ` Dmitriy Anisimkov
  0 siblings, 1 reply; 4+ messages in thread
From: Robert Dewar @ 1998-01-14  0:00 UTC (permalink / raw)



D Anisimikov says

<<I'm use GNAT-3-10 for Win32 and found the BUG :
--------------------------------
with Text_Io,Machine_Code;
procedure Rli is
   use Text_Io;

   subtype IComp is Long_Long_Integer;
   package Comp_Io is new Integer_IO(IComp); use Comp_Io;

   C : constant Icomp := 16#1234_0000_0000#;
   Cb : Icomp;
begin
   Cb := C;
   if Cb=0 then
-- Comparison with 0 distorts Long_Long_Integer
      null;
   end if;
   if C/=Cb then
-- it's wrong
      Put(" C ="); Put(C,0,16); New_Line;
      Put(" Cb="); Put(Cb,0,16); New_Line;
   end if;
end Rli;
>>

Bug reports for GNAT should go to report@gnat.com, but do not bother
to submit this particular one since it works fine with the current
version of GNAT.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Comparison with 0 distorts Long_Long_Integer
  1998-01-14  0:00 ` Robert Dewar
@ 1998-01-15  0:00   ` Dmitriy Anisimkov
  1998-01-15  0:00     ` Robert Dewar
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitriy Anisimkov @ 1998-01-15  0:00 UTC (permalink / raw)



Robert Dewar <dewar@merv.cs.nyu.edu> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫ О©╫О©╫О©╫О©╫О©╫О©╫
<dewar.884806754@merv>...
>  it works fine with the current
> version of GNAT.
> 
Where is the current version ?




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Comparison with 0 distorts Long_Long_Integer
  1998-01-15  0:00   ` Dmitriy Anisimkov
@ 1998-01-15  0:00     ` Robert Dewar
  0 siblings, 0 replies; 4+ messages in thread
From: Robert Dewar @ 1998-01-15  0:00 UTC (permalink / raw)



D. Anisimkov asks

<<Where is the current version ?
[of GNAT]>>

The current version of GNAT on all supported targets is 3.11a. This has not
been publicly released yet, but we anticipate a public release of 3.11
technology sometime in the next few months. 

Robert Dewar
Ada Core Technologies





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1998-01-15  0:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-01-14  0:00 Comparison with 0 distorts Long_Long_Integer Dmitriy Anisimkov
1998-01-14  0:00 ` Robert Dewar
1998-01-15  0:00   ` Dmitriy Anisimkov
1998-01-15  0:00     ` Robert Dewar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox