mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-04-06 23:32:39 +00:00

As defined in LangRef, aliases do not have sections. However, LLVM's GlobalAlias class inherits from GlobalValue, which means we can read and set its section. We should probably ban that as a separate change, since it doesn't make much sense for an alias to have a section that differs from its aliasee. Fixes PR18757, where the section was being lost on the global in code from Clang like: extern "C" { __attribute__((used, section("CUSTOM"))) static int in_custom_section; } Reviewers: rafael.espindola Differential Revision: http://llvm-reviews.chandlerc.com/D2758 llvm-svn: 201286
9 lines
376 B
LLVM
9 lines
376 B
LLVM
; RUN: opt -S -globalopt < %s | FileCheck %s
|
|
|
|
@_Z17in_custom_section = internal global i8 42, section "CUSTOM"
|
|
@in_custom_section = protected dllexport alias internal i8* @_Z17in_custom_section
|
|
|
|
; CHECK: @in_custom_section = internal protected dllexport global i8 42, section "CUSTOM"
|
|
|
|
@llvm.used = appending global [1 x i8*] [i8* @in_custom_section], section "llvm.metadata"
|