Ada83';地址表示属性

Ada83';地址表示属性,ada,Ada,我有一个正在更新的旧应用程序。最终使用要求使用特定的编译器。据我所见,此编译器无法识别此代码,并产生错误: Procedure Copy_Buffer (Source_Address: Address; Count : Natural ) -- reserve a buffer Source_Array with a number of words to fit Source_Array

我有一个正在更新的旧应用程序。最终使用要求使用特定的编译器。据我所见,此编译器无法识别此代码,并产生错误:

   Procedure Copy_Buffer (Source_Address: Address;
                          Count         : Natural   ) 

      -- reserve a buffer Source_Array with  a number of words to fit 
      Source_Array : Word_Buffer_Type ( 1.. Count );
      -- and put it at the same address as the incoming buffer pointer refers to
      For Source_Array'Address Use Source_Address;
它在两行上产生了无效的语法错误

      Source_Array : Word_Buffer_Type ( 1.. Count );
      For Source_Array'Address Use Source_Address;
这里的目的是将源数据视为Word\u Buffer\u type类型,而不管调用者可能是什么类型

当我使用GNAT和Ada83兼容编译它时,它工作得很好。但是,目标编译器不喜欢它


我看到早期开发人员处理这个问题的方式是用汇编语言处理缓冲区。我真的不想这样做,我在问是否有其他方法可以方便地(不经过太多的扭曲)处理源数据。

此语法在Ada 83中无效。Ada 83语法为
,用于源地址的源数组。谢谢。明天我有第三方帮我编译。我会把它传下去,然后报告结果。作为参考,Ada 83 LRM是在线的;例如,.@SimonWright我修复了“地址使用行”,该行似乎可以编译。我仍然得到一个警告,我认为这是由于之前的线路。“警告:由于address子句,变量源数组的初始化被忽略。”在我进行调查时(我必须通过远程定位的人进行调查),您是否看到该行有任何错误?@ajb您可能对我上面的评论有一些想法。非常感谢。