-- Helper package
library ieee;
use     ieee.std_logic_1164.all;

package p is
	type BusRecord is record
		Address : std_logic_vector;
		Data    : std_logic_vector;
	end record;
end package;

-- DUT
library ieee;
use     ieee.std_logic_1164.all;
use     work.p.all;

entity e is
	port (
		Axi : inout BusRecord
	);
end entity;

architecture a of e is
	alias  AxiData is Axi.Data;

	signal Address : std_logic_vector(Axi.Address'range);
	signal Data1   : AxiData'subtype;    -- line 27: declaration of signal "data1" with unconstrained array subtype "std_logic_vector" is not allowed
	signal Data2   : Axi.Data'subtype;   -- line 28: prefix must denote an object; a type mark must be a simple or expanded name
begin

end architecture;

-- Top Level
library ieee;
use     ieee.std_logic_1164.all;
use     work.p.all;

entity test is
end entity;

architecture tb of test is
	signal AxiBus : BusRecord(
		Address(7 downto 0),
		Data(31 downto 0)
	);
begin
	DUT: entity work.e
		port map (
			Axi => AxiBus
		);
end architecture;