diff options
author | Olivier Hainque <hainque@adacore.com> | 2010-08-20 22:08:41 +0000 |
---|---|---|
committer | Olivier Hainque <hainque@gcc.gnu.org> | 2010-08-20 22:08:41 +0000 |
commit | b4d456ffc0f749c78b1b53fb3e296a248ff700dd (patch) | |
tree | 25a265db39729efa8d868a101c02397e6e62df3f /gcc/tree.h | |
parent | 39acb18f66f7b0ff8c36f5fa96e76168f959d2a1 (diff) | |
download | gcc-b4d456ffc0f749c78b1b53fb3e296a248ff700dd.zip gcc-b4d456ffc0f749c78b1b53fb3e296a248ff700dd.tar.gz gcc-b4d456ffc0f749c78b1b53fb3e296a248ff700dd.tar.bz2 |
tree.h (alias_diag_flags): New enum.
* tree.h (alias_diag_flags): New enum.
(alias_pair): Add an 'emitted_diags' field.
* varasm.c (finish_aliases_1): Honor and update
* p->emitted_diags.
(assemble_alias): Initialize emitted_diags of new pairs.
From-SVN: r163425
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -184,10 +184,21 @@ extern const char *const tree_code_name[]; of an alias. This requires that the decl have been defined. Aliases that precede their definition have to be queued for later processing. */ +/* The deferred processing proceeds in several passes. We memorize the + diagnostics emitted for a pair to prevent repeating messages when the + queue gets re-scanned after possible updates. */ + +typedef enum { + ALIAS_DIAG_NONE = 0x0, + ALIAS_DIAG_TO_UNDEF = 0x1, + ALIAS_DIAG_TO_EXTERN = 0x2 +} alias_diag_flags; + typedef struct GTY(()) alias_pair { tree decl; - tree target; + tree target; + int emitted_diags; /* alias_diags already emitted for this pair. */ } alias_pair; /* Define gc'd vector type. */ |