Discussion:
Bug du compilateur ?
(trop ancien pour répondre)
Ising song
2017-07-02 14:12:14 UTC
Permalink
Bonjour,

J'ai tenté de compiler ceci:

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;

avec la commande gcc -c -gnat2012 bug.adb

j'obtiens:

raised STORAGE_ERROR : stack overflow or erroneous memory access

Si je modifie le type "my_int" en "subtype my_int is integer;" alors ça compile normalement.

Plus intéressant, si dans le premier programme, la fonction n'est plus inline, alors ça compile également normalement.

Avez-vous une idée de ce qui se passe ?
J-P. Rosen
2017-07-03 04:24:16 UTC
Permalink
Post by Ising song
Bonjour,
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;
avec la commande gcc -c -gnat2012 bug.adb
raised STORAGE_ERROR : stack overflow or erroneous memory access
Si je modifie le type "my_int" en "subtype my_int is integer;" alors ça compile normalement.
Plus intéressant, si dans le premier programme, la fonction n'est plus inline, alors ça compile également normalement.
Avez-vous une idée de ce qui se passe ?
Toute exception levée pendant la compilation est un bug du compilateur,
que le source soit légal ou pas. Donc, ticket...

D'autant plus que Randy a bien expliqué sur c.l.a qu'il n'y a aucune
raison que ce ne soit pas légal...
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr
Ising song
2017-07-03 19:17:33 UTC
Permalink
Post by J-P. Rosen
Post by Ising song
Bonjour,
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;
avec la commande gcc -c -gnat2012 bug.adb
raised STORAGE_ERROR : stack overflow or erroneous memory access
Si je modifie le type "my_int" en "subtype my_int is integer;" alors ça compile normalement.
Plus intéressant, si dans le premier programme, la fonction n'est plus inline, alors ça compile également normalement.
Avez-vous une idée de ce qui se passe ?
Toute exception levée pendant la compilation est un bug du compilateur,
que le source soit légal ou pas. Donc, ticket...
D'autant plus que Randy a bien expliqué sur c.l.a qu'il n'y a aucune
raison que ce ne soit pas légal...
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr
Merci,
J'ai envoyé la description de mon bug il y a deux jours.
Aucune réponse mais j'imagine que c'est normal ?
J-P. Rosen
2017-07-04 05:53:59 UTC
Permalink
Post by Ising song
Merci,
J'ai envoyé la description de mon bug il y a deux jours.
Aucune réponse mais j'imagine que c'est normal ?
Il n'y a jamais de réponse à propos de bugs de la version GPL. Ca ne
signifie pas qu'ils ne sont pas pris en compte, mais le principe est que
la version de GPL n'a aucune forme de service associé.

Après tout, c'est le service (pas le compilateur) qu'AdaCore vend. Il
faut quand même qu'ils aient quelque chose à vendre pour survivre... et
produire la version GPL!
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr
Ising song
2017-07-04 06:19:39 UTC
Permalink
Post by J-P. Rosen
Post by Ising song
Merci,
J'ai envoyé la description de mon bug il y a deux jours.
Aucune réponse mais j'imagine que c'est normal ?
Il n'y a jamais de réponse à propos de bugs de la version GPL. Ca ne
signifie pas qu'ils ne sont pas pris en compte, mais le principe est que
la version de GPL n'a aucune forme de service associé.
Après tout, c'est le service (pas le compilateur) qu'AdaCore vend. Il
faut quand même qu'ils aient quelque chose à vendre pour survivre... et
produire la version GPL!
--
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
Tel: +33 1 45 29 21 52, Fax: +33 1 45 29 25 00
http://www.adalog.fr
J'ai compris.
Merci.

Continuer la lecture sur narkive:
Loading...