Re: Compiler does not compile valid code?
Mart van de Wege wrote:
However, even the most simple use case, compiling (using gnatmake
test_tree.adb, no switches) and running the following code on Sid,
raises a Program_Error:
raised PROGRAM_ERROR : Tree_Test.Test_Tree.Replace_Element: Position cursor designates root
I think this is a problem specific to your installation.
I copied the source from your example, and it seems to work fine in my
Sid chroot:
% cat test_tree.adb
with Ada.Text_Io;
with Ada.Containers.Multiway_Trees;
procedure Test_Tree is
type String_Access is access String;
package Tr is new Ada.Containers.Multiway_Trees
( Element_Type => String_Access );
use Tr;
T : Tree := Empty_Tree;
C : Cursor := Root(T);
begin
T.Insert_Child(Parent => C,
Before => No_Element,
New_Item => new String'("Test"));
end Test_Tree;
% gnatmake -gnata -gnato -fstack-check -gnat12 -gnatyO -gnatv -gnati1
-gnatf -gnatn -m test_tree.adb
gcc-6 -c -gnata -gnato -fstack-check -gnat12 -gnatyO -gnatv -gnati1
-gnatf -gnatn test_tree.adb
GNAT 6.3.0 20170406
Copyright 1992-2016, Free Software Foundation, Inc.
Compiling: test_tree.adb
Source file time stamp: 2017-04-13 08:43:09
Compiled at: 2017-04-13 10:47:11
14 lines: No errors
gnatbind-6 -x test_tree.ali
gnatlink-6 test_tree.ali -fstack-check
% ./test_tree
% echo $?
0
% dpkg -S $(which gnatmake)
gnat-6: /usr/bin/gnatmake
%
Greetings,
Jacob
--
"Computer Science is to Science, as Plumbing is to Hydrodynamics"
Reply to: