Skip to content

ARM: crash in ARMAsmPrinter::GetARMGVSymbol #167577

@google-yfyang

Description

@google-yfyang

Minimal reproducer:

target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "armv7-unknown-linux-android23"

@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @upb_GeneratedRegistry_Constructor_dont_copy_me__upb_internal_use_only, ptr null }]

; Uncommenting this block will resolve the crash.
;define void @test() {
;ret void
;}

declare void @upb_GeneratedRegistry_Constructor_dont_copy_me__upb_internal_use_only()

Instructions to reproduce:
llc < reduced.ll

The crash occurs on Subtarget field of ARMAsmPrinter inside of ARMAsmPrinter::GetARMGVSymbol. This is only initialized when runOnMachineFunction is called. That is why simply adding a function definition is "fixing" the crash.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backend:ARMcrashPrefer [crash-on-valid] or [crash-on-invalid]

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions