10b57cec5SDimitry Andric//===- llvm/CodeGen/DIEValue.def - DIEValue types ---------------*- C++ -*-===// 20b57cec5SDimitry Andric// 30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric// 70b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric// 90b57cec5SDimitry Andric// Macros for running through all types of DIEValue. 100b57cec5SDimitry Andric// 110b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 120b57cec5SDimitry Andric 130b57cec5SDimitry Andric#if !(defined HANDLE_DIEVALUE || defined HANDLE_DIEVALUE_SMALL || \ 140b57cec5SDimitry Andric defined HANDLE_DIEVALUE_LARGE) 150b57cec5SDimitry Andric#error "Missing macro definition of HANDLE_DIEVALUE" 160b57cec5SDimitry Andric#endif 170b57cec5SDimitry Andric 180b57cec5SDimitry Andric// Handler for all values. 190b57cec5SDimitry Andric#ifndef HANDLE_DIEVALUE 200b57cec5SDimitry Andric#define HANDLE_DIEVALUE(T) 210b57cec5SDimitry Andric#endif 220b57cec5SDimitry Andric 230b57cec5SDimitry Andric// Handler for small values. 240b57cec5SDimitry Andric#ifndef HANDLE_DIEVALUE_SMALL 250b57cec5SDimitry Andric#define HANDLE_DIEVALUE_SMALL(T) HANDLE_DIEVALUE(T) 260b57cec5SDimitry Andric#endif 270b57cec5SDimitry Andric 280b57cec5SDimitry Andric// Handler for large values. 290b57cec5SDimitry Andric#ifndef HANDLE_DIEVALUE_LARGE 300b57cec5SDimitry Andric#define HANDLE_DIEVALUE_LARGE(T) HANDLE_DIEVALUE(T) 310b57cec5SDimitry Andric#endif 320b57cec5SDimitry Andric 330b57cec5SDimitry AndricHANDLE_DIEVALUE_SMALL(Integer) 340b57cec5SDimitry AndricHANDLE_DIEVALUE_SMALL(String) 350b57cec5SDimitry AndricHANDLE_DIEVALUE_SMALL(Expr) 360b57cec5SDimitry AndricHANDLE_DIEVALUE_SMALL(Label) 370b57cec5SDimitry AndricHANDLE_DIEVALUE_LARGE(BaseTypeRef) 380b57cec5SDimitry AndricHANDLE_DIEVALUE_LARGE(Delta) 390b57cec5SDimitry AndricHANDLE_DIEVALUE_SMALL(Entry) 400b57cec5SDimitry AndricHANDLE_DIEVALUE_LARGE(Block) 410b57cec5SDimitry AndricHANDLE_DIEVALUE_LARGE(Loc) 420b57cec5SDimitry AndricHANDLE_DIEVALUE_SMALL(LocList) 430b57cec5SDimitry AndricHANDLE_DIEVALUE_LARGE(InlineString) 440b57cec5SDimitry AndricHANDLE_DIEVALUE_LARGE(AddrOffset) 450b57cec5SDimitry Andric 460b57cec5SDimitry Andric#undef HANDLE_DIEVALUE 470b57cec5SDimitry Andric#undef HANDLE_DIEVALUE_SMALL 48#undef HANDLE_DIEVALUE_LARGE 49