// #target: macos-x64
module test;
import std::io;

faultdef FOO;
const String? ABC = FOO~;
String? abc = FOO~;
const String? DEF = ABC;
String? bcd = ABC;


/* #expect: test.ll

@test.ABC.f = unnamed_addr global i64 ptrtoint (ptr @test.FOO to i64), align 8
@test.abc.f = unnamed_addr global i64 ptrtoint (ptr @test.FOO to i64), align 8
@test.DEF.f = unnamed_addr global i64 ptrtoint (ptr @test.FOO to i64), align 8
@test.bcd.f = unnamed_addr global i64 ptrtoint (ptr @test.FOO to i64), align 8
@test.ABC = local_unnamed_addr constant %"char[]" zeroinitializer, align 8
@test.FOO = linkonce constant %"char[]" { ptr @test.FOO.nameof, i64 9 }, align 8
@test.FOO.nameof = internal constant [10 x i8] c"test::FOO\00", align 1
@test.abc = local_unnamed_addr global %"char[]" zeroinitializer, align 8
@test.DEF = local_unnamed_addr constant %"char[]" zeroinitializer, align 8
@test.bcd = local_unnamed_addr global %"char[]" zeroinitializer, align 8
