struct HeaderFileInfo

Declaration

struct HeaderFileInfo { /* full declaration omitted */ };

Description

The preprocessor keeps track of this information for each file that is # included.

Declared at: clang/include/clang/Lex/HeaderSearch.h:58

Member Variables

public unsigned int isImport
True if this is a # import'd file.
public unsigned int isPragmaOnce
True if this is a # pragma once file.
public unsigned int DirInfo
Keep track of whether this is a system header, and if so, whether it is C++ clean or not. This can be set by the include paths or by # pragma gcc system_header. This is an instance of SrcMgr::CharacteristicKind.
public unsigned int External
Whether this header file info was supplied by an external source, and has not changed since.
public unsigned int isModuleHeader
Whether this header is part of a module.
public unsigned int isCompilingModuleHeader
Whether this header is part of the module that we are building.
public unsigned int Resolved
Whether this structure is considered to already have been "resolved", meaning that it was loaded from the external source.
public unsigned int IndexHeaderMapHeader
When a framework is being built, the headers have not yet been placed into the appropriate framework subdirectories, and therefore are provided via a header map. This bit indicates when this is one of those framework headers.
public unsigned int IsValid
Whether this file has been looked up as a header.
public unsigned int ControllingMacroID = 0
This ID number will be non-zero when there is a controlling macro whose IdentifierInfo may not yet have been loaded from external storage.
public const clang::IdentifierInfo* ControllingMacro = nullptr
Note: Most clients should use getControllingMacro() to access the controlling macro of this header, since getControllingMacro() is able to load a controlling macro from external storage.
public llvm::StringRef Framework
If this header came from a framework include, this is the name of the framework.

Method Overview

Methods

HeaderFileInfo()

Declared at: clang/include/clang/Lex/HeaderSearch.h:120

const clang::IdentifierInfo* getControllingMacro(
    clang::ExternalPreprocessorSource* External)

Description

Retrieve the controlling macro for this header file, if any.

Declared at: clang/include/clang/Lex/HeaderSearch.h:128

Parameters

clang::ExternalPreprocessorSource* External