-void as_assert (const char *, int, const char *);
-void as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
-
-void fprint_value (FILE *file, addressT value);
-void sprint_value (char *buf, addressT value);
-
-int had_errors (void);
-int had_warnings (void);
-
-void print_version_id (void);
-char *app_push (void);
-char *atof_ieee (char *str, int what_kind, LITTLENUM_TYPE * words);
-char *input_scrub_include_file (char *filename, char *position);
-extern void input_scrub_insert_line (const char *line);
-extern void input_scrub_insert_file (char *path);
-char *input_scrub_new_file (char *filename);
-char *input_scrub_next_buffer (char **bufp);
-int do_scrub_chars (int (*get) (char *, int), char *to, int tolen);
-int gen_to_words (LITTLENUM_TYPE * words, int precision,
- long exponent_bits);
-int had_err (void);
-int ignore_input (void);
-void cond_finish_check (int);
-void cond_exit_macro (int);
-int seen_at_least_1_file (void);
-void app_pop (char *arg);
-void as_howmuch (FILE * stream);
-void as_perror (const char *gripe, const char *filename);
-void as_where (char **namep, unsigned int *linep);
-void bump_line_counters (void);
-void do_scrub_begin (int);
-void input_scrub_begin (void);
-void input_scrub_close (void);
-void input_scrub_end (void);
-int new_logical_line (char *fname, int line_number);
-void subsegs_begin (void);
-void subseg_change (segT seg, int subseg);
-segT subseg_new (const char *name, subsegT subseg);
-segT subseg_force_new (const char *name, subsegT subseg);
-void subseg_set (segT seg, subsegT subseg);
-#ifdef BFD_ASSEMBLER
-segT subseg_get (const char *, int);
-#endif
-int subseg_text_p (segT);
-
-void start_dependencies (char *);
-void register_dependency (char *);
-void print_dependencies (void);
+void as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
+void signal_init (void);
+void sprint_value (char *, addressT);
+int had_errors (void);
+int had_warnings (void);
+void as_warn_value_out_of_range (const char *, offsetT, offsetT, offsetT,
+ const char *, unsigned);
+void as_bad_value_out_of_range (const char *, offsetT, offsetT, offsetT,
+ const char *, unsigned);
+void print_version_id (void);
+char * app_push (void);
+
+/* Number of littlenums required to hold an extended precision number. */
+#define MAX_LITTLENUMS 6
+
+char * atof_ieee (char *, int, LITTLENUM_TYPE *);
+char * atof_ieee_detail (char *, int, int, LITTLENUM_TYPE *, FLONUM_TYPE *);
+const char * ieee_md_atof (int, char *, int *, bfd_boolean);
+const char * vax_md_atof (int, char *, int *);
+char * input_scrub_include_file (const char *, char *);
+void input_scrub_insert_line (const char *);
+void input_scrub_insert_file (char *);
+char * input_scrub_new_file (const char *);
+char * input_scrub_next_buffer (char **bufp);
+size_t do_scrub_chars (size_t (*get) (char *, size_t), char *, size_t);
+int gen_to_words (LITTLENUM_TYPE *, int, long);
+int had_err (void);
+int ignore_input (void);
+void cond_finish_check (int);
+void cond_exit_macro (int);
+int seen_at_least_1_file (void);
+void app_pop (char *);
+const char * as_where (unsigned int *);
+const char * as_where_physical (unsigned int *);
+void bump_line_counters (void);
+void do_scrub_begin (int);
+void input_scrub_begin (void);
+void input_scrub_close (void);
+void input_scrub_end (void);
+int new_logical_line (const char *, int);
+int new_logical_line_flags (const char *, int, int);
+void subsegs_begin (void);
+void subseg_change (segT, int);
+segT subseg_new (const char *, subsegT);
+segT subseg_force_new (const char *, subsegT);
+void subseg_set (segT, subsegT);
+int subseg_text_p (segT);
+int seg_not_empty_p (segT);
+void start_dependencies (char *);
+void register_dependency (const char *);
+void print_dependencies (void);
+segT subseg_get (const char *, int);
+
+const char *remap_debug_filename (const char *);
+void add_debug_prefix_map (const char *);
+
+static inline char *
+xmemdup0 (const char *in, size_t len)
+{
+ char *out = (char *) xmalloc (len + 1);
+ out[len] = 0;
+ return (char *) memcpy (out, in, len);
+}