-void as_assert PARAMS ((const char *, int, const char *));
-void as_abort PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN;
-
-void fprint_value PARAMS ((FILE *file, addressT value));
-void sprint_value PARAMS ((char *buf, addressT value));
-
-int had_errors PARAMS ((void));
-int had_warnings PARAMS ((void));
-
-void print_version_id PARAMS ((void));
-char *app_push PARAMS ((void));
-char *atof_ieee PARAMS ((char *str, int what_kind, LITTLENUM_TYPE * words));
-char *input_scrub_include_file PARAMS ((char *filename, char *position));
-extern void input_scrub_insert_line PARAMS((const char *line));
-extern void input_scrub_insert_file PARAMS((char *path));
-char *input_scrub_new_file PARAMS ((char *filename));
-char *input_scrub_next_buffer PARAMS ((char **bufp));
-int do_scrub_chars PARAMS ((int (*get) (char *, int), char *to, int tolen));
-int gen_to_words PARAMS ((LITTLENUM_TYPE * words, int precision,
- long exponent_bits));
-int had_err PARAMS ((void));
-int ignore_input PARAMS ((void));
-void cond_finish_check PARAMS ((int));
-void cond_exit_macro PARAMS ((int));
-int seen_at_least_1_file PARAMS ((void));
-void app_pop PARAMS ((char *arg));
-void as_howmuch PARAMS ((FILE * stream));
-void as_perror PARAMS ((const char *gripe, const char *filename));
-void as_where PARAMS ((char **namep, unsigned int *linep));
-void bump_line_counters PARAMS ((void));
-void do_scrub_begin PARAMS ((int));
-void input_scrub_begin PARAMS ((void));
-void input_scrub_close PARAMS ((void));
-void input_scrub_end PARAMS ((void));
-int new_logical_line PARAMS ((char *fname, int line_number));
-void subsegs_begin PARAMS ((void));
-void subseg_change PARAMS ((segT seg, int subseg));
-segT subseg_new PARAMS ((const char *name, subsegT subseg));
-segT subseg_force_new PARAMS ((const char *name, subsegT subseg));
-void subseg_set PARAMS ((segT seg, subsegT subseg));
-#ifdef BFD_ASSEMBLER
-segT subseg_get PARAMS ((const char *, int));
-#endif
-int subseg_text_p PARAMS ((segT));
-
-void start_dependencies PARAMS ((char *));
-void register_dependency PARAMS ((char *));
-void print_dependencies PARAMS ((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);
+}