gcc-8.3/gcc/HOOK_VECTOR()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#v191128f]
#backlinks
*説明 [#e9165748]
-パス: [[gcc-8.3/gcc/target-hooks-macros.h]]
-FIXME: これは何?
--HOOK_VECTOR_1(), HOOKSTRUCT の定義により結果が全く違う...
---[[gcc-8.3/gcc/HOOK_VECTOR1()]]
---[[gcc-8.3/gcc/HOOKSTRUCT()]]
**引数 [#qb03cedb]
-INIT_NAME
--
-SNAME
--構造体の名前
**返り値 [#e608fbe1]
-なし、関数ではない
**参考 [#r7f08caf]
** target.h の場合 [#z7072a92]
HOOK_VECTOR は構造体の定義を宣言するために使われる。
/* The target structure. This holds all the backend hoo...
#define DEFHOOKPOD(NAME, DOC, TYPE, INIT) TYPE NAME;
#define DEFHOOK(NAME, DOC, TYPE, PARAMS, INIT) TYPE (* N...
#define DEFHOOK_UNDOC DEFHOOK
#define HOOKSTRUCT(FRAGMENT) FRAGMENT //★★★★(2)
#include "target.def"
HOOK_VECTOR_1 は未定義のまま target.def をインクルードす...
target.def
#include "target-hooks-macros.h"
#undef HOOK_TYPE
#define HOOK_TYPE "Target Hook"
HOOK_VECTOR (TARGET_INITIALIZER, gcc_target)
target-hooks-macros.h
/* HOOK_VECTOR: Start a struct declaration, which then g...
HOOK_VECTOR_END: Close a struct declaration, providin...
name for nested use. */
#ifndef HOOK_VECTOR_1
#define HOOK_VECTOR_1(NAME, FRAGMENT) HOOKSTRUCT (FRAGME...
#endif
となっているため、
HOOK_VECTOR (TARGET_INITIALIZER, gcc_target)
↓ 定義より
HOOK_VECTOR_1(TARGET_INITIALIZER, struct gcc_target {)
↓ (1) より
HOOKSTRUCT (struct gcc_target{)
↓ (2) より
struct gcc_target {
-target.h 版: [[gcc-8.3/gcc/HOOK_VECTOR1()(target)]]
** genhooks.c の場合 [#u5863d8c]
HOOK_VECTOR は static struct hook_desc hook_array[] の 1...
#define HOOK_VECTOR_1(NAME, FRAGMENT) \
{ 0, 0, #NAME, 0, 0, HOOK_TYPE }, //★★★★(1)
//...
#include "target.def"
target.def
#include "target-hooks-macros.h"
#undef HOOK_TYPE
#define HOOK_TYPE "Target Hook"
HOOK_VECTOR (TARGET_INITIALIZER, gcc_target)
となっているため、
HOOK_VECTOR (TARGET_INITIALIZER, gcc_target)
↓ 定義より
HOOK_VECTOR_1(TARGET_INITIALIZER, struct gcc_target {)
↓ (1) より
{ 0, 0, "TARGET_INITIALIZER", 0, 0, HOOK_TYPE },
となる。target.def の周りはこのような構造体の定義になって...
struct hook_desc { const char *doc, *type, *name, *param...
static struct hook_desc hook_array[] = {
//...
#include "target.def"
#include "c-family/c-target.def"
#include "common/common-target.def"
#undef DEFHOOK
};
HOOK_VECTOR は hook_array の 1要素を定義するために使って...
-genhooks.c 版: [[gcc-8.3/gcc/HOOK_VECTOR1()(genhooks)]]
*実装 [#af1c8ee3]
#define HOOK_VECTOR(INIT_NAME, SNAME) HOOK_VECTOR_1 (INI...
-
--[[gcc-8.3/gcc/HOOK_VECTOR1()]]
*コメント [#oc5d16d8]
終了行:
*参照元 [#v191128f]
#backlinks
*説明 [#e9165748]
-パス: [[gcc-8.3/gcc/target-hooks-macros.h]]
-FIXME: これは何?
--HOOK_VECTOR_1(), HOOKSTRUCT の定義により結果が全く違う...
---[[gcc-8.3/gcc/HOOK_VECTOR1()]]
---[[gcc-8.3/gcc/HOOKSTRUCT()]]
**引数 [#qb03cedb]
-INIT_NAME
--
-SNAME
--構造体の名前
**返り値 [#e608fbe1]
-なし、関数ではない
**参考 [#r7f08caf]
** target.h の場合 [#z7072a92]
HOOK_VECTOR は構造体の定義を宣言するために使われる。
/* The target structure. This holds all the backend hoo...
#define DEFHOOKPOD(NAME, DOC, TYPE, INIT) TYPE NAME;
#define DEFHOOK(NAME, DOC, TYPE, PARAMS, INIT) TYPE (* N...
#define DEFHOOK_UNDOC DEFHOOK
#define HOOKSTRUCT(FRAGMENT) FRAGMENT //★★★★(2)
#include "target.def"
HOOK_VECTOR_1 は未定義のまま target.def をインクルードす...
target.def
#include "target-hooks-macros.h"
#undef HOOK_TYPE
#define HOOK_TYPE "Target Hook"
HOOK_VECTOR (TARGET_INITIALIZER, gcc_target)
target-hooks-macros.h
/* HOOK_VECTOR: Start a struct declaration, which then g...
HOOK_VECTOR_END: Close a struct declaration, providin...
name for nested use. */
#ifndef HOOK_VECTOR_1
#define HOOK_VECTOR_1(NAME, FRAGMENT) HOOKSTRUCT (FRAGME...
#endif
となっているため、
HOOK_VECTOR (TARGET_INITIALIZER, gcc_target)
↓ 定義より
HOOK_VECTOR_1(TARGET_INITIALIZER, struct gcc_target {)
↓ (1) より
HOOKSTRUCT (struct gcc_target{)
↓ (2) より
struct gcc_target {
-target.h 版: [[gcc-8.3/gcc/HOOK_VECTOR1()(target)]]
** genhooks.c の場合 [#u5863d8c]
HOOK_VECTOR は static struct hook_desc hook_array[] の 1...
#define HOOK_VECTOR_1(NAME, FRAGMENT) \
{ 0, 0, #NAME, 0, 0, HOOK_TYPE }, //★★★★(1)
//...
#include "target.def"
target.def
#include "target-hooks-macros.h"
#undef HOOK_TYPE
#define HOOK_TYPE "Target Hook"
HOOK_VECTOR (TARGET_INITIALIZER, gcc_target)
となっているため、
HOOK_VECTOR (TARGET_INITIALIZER, gcc_target)
↓ 定義より
HOOK_VECTOR_1(TARGET_INITIALIZER, struct gcc_target {)
↓ (1) より
{ 0, 0, "TARGET_INITIALIZER", 0, 0, HOOK_TYPE },
となる。target.def の周りはこのような構造体の定義になって...
struct hook_desc { const char *doc, *type, *name, *param...
static struct hook_desc hook_array[] = {
//...
#include "target.def"
#include "c-family/c-target.def"
#include "common/common-target.def"
#undef DEFHOOK
};
HOOK_VECTOR は hook_array の 1要素を定義するために使って...
-genhooks.c 版: [[gcc-8.3/gcc/HOOK_VECTOR1()(genhooks)]]
*実装 [#af1c8ee3]
#define HOOK_VECTOR(INIT_NAME, SNAME) HOOK_VECTOR_1 (INI...
-
--[[gcc-8.3/gcc/HOOK_VECTOR1()]]
*コメント [#oc5d16d8]
ページ名: