Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(949)

Unified Diff: gcc/gcc/pretty-print.h

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gcc/gcc/predict.def ('k') | gcc/gcc/pretty-print.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gcc/gcc/pretty-print.h
diff --git a/gcc/gcc/pretty-print.h b/gcc/gcc/pretty-print.h
index dd3f0c0ad3909f8cd2196c1aadcdf59da45bd84c..3ba503538508c54dd8e6da00de033a6d7213f2c4 100644
--- a/gcc/gcc/pretty-print.h
+++ b/gcc/gcc/pretty-print.h
@@ -71,9 +71,9 @@ struct chunk_info
/* The output buffer datatype. This is best seen as an abstract datatype
whose fields should not be accessed directly by clients. */
-typedef struct
+typedef struct
{
- /* Obstack where the text is built up. */
+ /* Obstack where the text is built up. */
struct obstack formatted_obstack;
/* Obstack containing a chunked representation of the format
@@ -90,7 +90,7 @@ typedef struct
/* Where to output formatted text. */
FILE *stream;
- /* The amount of characters output so far. */
+ /* The amount of characters output so far. */
int line_length;
/* This must be large enough to hold any printed integer or
@@ -114,7 +114,7 @@ typedef struct
diagnostic_prefixing_rule_t rule;
/* The ideal upper bound of number of characters per line, as suggested
- by front-end. */
+ by front-end. */
int line_cutoff;
} pp_wrapping_mode_t;
@@ -140,7 +140,7 @@ typedef bool (*printer_fn) (pretty_printer *, text_info *, const char *,
/* TRUE if a newline character needs to be added before further
formatting. */
-#define pp_needs_newline(PP) pp_base (PP)->need_newline
+#define pp_needs_newline(PP) pp_base (PP)->need_newline
/* True if PRETTY-PRINTER is in line-wrapping mode. */
#define pp_is_wrapping_line(PP) (pp_line_cutoff (PP) > 0)
@@ -148,6 +148,10 @@ typedef bool (*printer_fn) (pretty_printer *, text_info *, const char *,
/* The amount of whitespace to be emitted when starting a new line. */
#define pp_indentation(PP) pp_base (PP)->indent_skip
+/* True if identifiers are translated to the locale character set on
+ output. */
+#define pp_translate_identifiers(PP) pp_base (PP)->translate_identifiers
+
/* The data structure that contains the bare minimum required to do
proper pretty-printing. Clients may derived from this structure
and add additional fields they need. */
@@ -158,12 +162,12 @@ struct pretty_print_info
/* The prefix for each new line. */
const char *prefix;
-
+
/* Where to put whitespace around the entity being formatted. */
pp_padding padding;
-
+
/* The real upper bound of number of characters per line, taking into
- account the case of a very very looong prefix. */
+ account the case of a very very looong prefix. */
int maximum_length;
/* Indentation count. */
@@ -187,6 +191,10 @@ struct pretty_print_info
/* Nonzero means one should emit a newline before outputting anything. */
bool need_newline;
+
+ /* Nonzero means identifiers are translated to the locale character
+ set on output. */
+ bool translate_identifiers;
};
#define pp_set_line_maximum_length(PP, L) \
@@ -273,10 +281,11 @@ struct pretty_print_info
pp_scalar (PP, HOST_WIDEST_INT_PRINT_DEC, (HOST_WIDEST_INT) I)
#define pp_pointer(PP, P) pp_scalar (PP, "%p", P)
-#define pp_identifier(PP, ID) pp_string (PP, ID)
+#define pp_identifier(PP, ID) pp_string (PP, (pp_translate_identifiers (PP) \
+ ? identifier_to_locale (ID) \
+ : (ID)))
#define pp_tree_identifier(PP, T) \
- pp_append_text(PP, IDENTIFIER_POINTER (T), \
- IDENTIFIER_POINTER (T) + IDENTIFIER_LENGTH (T))
+ pp_base_tree_identifier (pp_base (PP), T)
#define pp_unsupported_tree(PP, T) \
pp_verbatim (pp_base (PP), "#%qs not supported by %s#", \
@@ -322,6 +331,7 @@ extern void pp_base_character (pretty_printer *, int);
extern void pp_base_string (pretty_printer *, const char *);
extern void pp_write_text_to_stream (pretty_printer *pp);
extern void pp_base_maybe_space (pretty_printer *);
+extern void pp_base_tree_identifier (pretty_printer *, tree);
/* Switch into verbatim mode and return the old mode. */
static inline pp_wrapping_mode_t
@@ -334,4 +344,6 @@ pp_set_verbatim_wrapping_ (pretty_printer *pp)
}
#define pp_set_verbatim_wrapping(PP) pp_set_verbatim_wrapping_ (pp_base (PP))
+extern const char *identifier_to_locale (const char *);
+
#endif /* GCC_PRETTY_PRINT_H */
« no previous file with comments | « gcc/gcc/predict.def ('k') | gcc/gcc/pretty-print.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698