comp.lang.ada
 help / color / mirror / Atom feed
From: Anh Vo <anhvofrcaus@gmail.com>
Subject: Re: bug compiler ?
Date: Fri, 30 Jun 2017 07:49:10 -0700 (PDT)
Date: 2017-06-30T07:49:10-07:00	[thread overview]
Message-ID: <a0b81332-9f17-48d4-817e-7c46587787c9@googlegroups.com> (raw)
In-Reply-To: <b347ed13-79e5-4df1-b687-e280ce3459f4@googlegroups.com>

On Friday, June 30, 2017 at 4:09:31 AM UTC-7, Lucretia wrote:
> On Friday, 30 June 2017 09:49:59 UTC+1, bbab...@gmail.com  wrote:
> > Hello everyone,
> > 
> > I tried to compile this 
> > 
> > procedure bug is
> > 	type my_int is new integer;
> > 	type access_function_my_int is access function (n : my_int) return my_int;
> > 	function f (n : my_int) return my_int is (n);
> > 	a : access_function_my_int :=f'access;
> > begin
> > 	null;
> > end bug;
> > 
> > with the command line : gcc -c -gnat2012 bug.adb
> > 
> > and then I get this message from the compiler:
> > 
> > 
> > raised STORAGE_ERROR : stack overflow or erroneous memory access
> > 
> > If I modify the type "my_int" by writing subtype my_int is integer;
> > then I dont get any error from the compiler.
> > 
> > More interesting, if in the first program, the function f is no longer written inline, then I dont get any error.
> > 
> > Does anyone know what's happeing ?
> 
> You can't create a local pointer to f or anything there, you have to define it in a package. You're essentially trying to create a pointer on the stack to something else on the stack. There is a way around it, I think unchecked_conversion, not sure now.
> 

The compiler should reject it if it does not compile with syntax rule. In this case, it does compile. In fact, if the function expression is replaced by normal function, it compiles fine. 

Therefore, a bug report should be sent to gnat@adacore.com.

Anh Vo

  reply	other threads:[~2017-06-30 14:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-30  8:49 bug compiler ? bbaborum
2017-06-30 11:09 ` Lucretia
2017-06-30 14:49   ` Anh Vo [this message]
2017-06-30 15:03     ` Anh Vo
2017-06-30 18:47     ` Simon Wright
2017-06-30 19:42       ` Anh Vo
2017-07-02 16:43       ` bbaborum
2017-07-02 16:42   ` bbaborum
2017-06-30 15:11 ` AdaMagica
2017-06-30 18:20   ` Randy Brukardt
replies disabled

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