// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s | |
// rdar://9894548 | |
typedef unsigned long word_t; | |
typedef unsigned long u64_t; | |
typedef unsigned int u32_t; | |
class ioapic_redir_t { | |
public: | |
union { | |
struct { | |
word_t vector : 8; | |
word_t delivery_mode : 3; | |
word_t dest_mode : 1; | |
word_t delivery_status : 1; | |
word_t polarity : 1; | |
word_t irr : 1; | |
word_t trigger_mode : 1; | |
word_t mask : 1; | |
word_t _pad0 : 15; | |
word_t dest : 8; | |
}; | |
volatile u32_t raw[2]; | |
volatile u64_t raw64; | |
}; | |
}; | |
struct ioapic_shadow_struct | |
{ | |
ioapic_redir_t redirs[24]; | |
} ioapic_shadow[16]; | |
void init_ioapic(unsigned long ioapic_id) | |
{ | |
ioapic_redir_t entry; | |
ioapic_shadow[ioapic_id].redirs[3] = entry; | |
} | |
// CHECK: call void @llvm.memcpy |