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