Ada AUnit中的虫子与蚊虫一起出现

Ada AUnit中的虫子与蚊虫一起出现,ada,gnat,aunit,Ada,Gnat,Aunit,我相信我已经在AUnit中发现并修复了一个bug,它是Ada GNAT编译器工具的一部分 向AdaCore提交GNAT工具社区版本的bug的最佳方式是什么 以下程序使用当前版本的编译器GNAT Community 2020(20200429-84)自动中止 错误出现在文件aunit.adb中的过程消息_Free中。以下是修补版本。更改是对AUnit.Memory.AUnit\u Free调用的参数 procedure Message_Free (Msg : in out Message_S

我相信我已经在AUnit中发现并修复了一个bug,它是Ada GNAT编译器工具的一部分

向AdaCore提交GNAT工具社区版本的bug的最佳方式是什么

以下程序使用当前版本的编译器GNAT Community 2020(20200429-84)自动中止

错误出现在文件aunit.adb中的过程消息_Free中。以下是修补版本。更改是对AUnit.Memory.AUnit\u Free调用的参数

   procedure Message_Free (Msg : in out Message_String) is
   begin
      if Msg /= null then
         AUnit.Memory.AUnit_Free (Msg.all'address - System.Address'size/8);
         Msg := null;
      end if;
   end Message_Free;
邮寄至:report(at)(制造GNAT的公司名称).com

您可以使用有意义的标题和有用的信息来显示错误(通常是复制者示例)和修复程序,从而增加您的机会。

扩展:还有两个其他选项:

  • 您可以在Github的公共AUnit存储库中报告错误、提出拉取请求:

    在我看来,这可能是比我的第二个建议更好的选择

  • 您可以在此处使用AdaCore软件社区版本的联系web表单:

    根据我自己的经验,你可以很快得到答案


  • System.Address'size/8
    看起来。。。有点不对劲。应该是
    System.Address'size/System.Storage\u Unit
    ?@BrianDrummond,消息Alloc中有文字8。我认为它实际上应该是
    Bounds'Object\u Size/8
    Bounds
    是两个整数)如果你没有在Github上设置,我可以为你做这件事(顺便说一句,如果错误消息和macOS上的一样没有帮助,恭喜你找到了它!)
       procedure Message_Free (Msg : in out Message_String) is
       begin
          if Msg /= null then
             AUnit.Memory.AUnit_Free (Msg.all'address - System.Address'size/8);
             Msg := null;
          end if;
       end Message_Free;