+2000-07-28 Alan Modra <alan@linuxcare.com.au>
+
+ * as.h (warn_comment, found_comment, found_comment_file): Declare.
+ * app.c (do_scrub_chars): Record where first comment found.
+ * read.c (read_a_source_file): Init found_comment on entry, and
+ notify whether comments found on exit.
+ * config/tc-hppa.c (md_shortopts): Add "c".
+ (md_longopts): Add warn-comment.
+ (md_parse_option): Handle it.
+ (md_show_usage): Show available options.
+ * config/tc-hppa.h (WARN_COMMENTS): Define if TE_LINUX
+
Thu Jul 27 11:25:01 2000 Andrew Cagney <cagney@b1.cygnus.com>
* config/tc-mn10300.c (md_convert_frag): Fix printfs.
as default if so. This is a hack. */
if ((symver_state != NULL) && (*symver_state == 0))
goto de_fault;
+#endif
+#ifdef WARN_COMMENTS
+ if (!found_comment)
+ as_where (&found_comment_file, &found_comment);
#endif
do
{
#define flag_m68k_mri 0
#endif
+#ifdef WARN_COMMENTS
+COMMON int warn_comment;
+COMMON unsigned int found_comment;
+COMMON char *found_comment_file;
+#endif
+
#ifndef NUMBERS_WITH_SUFFIX
#define NUMBERS_WITH_SUFFIX 0
#endif
}
\f
#ifdef OBJ_ELF
+# ifdef WARN_COMMENTS
+const char *md_shortopts = "Vc";
+# else
const char *md_shortopts = "V";
+# endif
#else
+# ifdef WARN_COMMENTS
+const char *md_shortopts = "c";
+# else
const char *md_shortopts = "";
+# endif
#endif
struct option md_longopts[] = {
+#ifdef WARN_COMMENTS
+ {"warn-comment", no_argument, NULL, 'c'},
+#endif
{NULL, no_argument, NULL, 0}
};
size_t md_longopts_size = sizeof(md_longopts);
case 'V':
print_version_id ();
break;
+#endif
+#ifdef WARN_COMMENTS
+ case 'c':
+ warn_comment = 1;
+ break;
#endif
}
md_show_usage (stream)
FILE *stream ATTRIBUTE_UNUSED;
{
+#ifdef OBJ_ELF
+ fprintf (stream, _("\
+ -Q ignored\n"));
+#endif
+#ifdef WARN_COMMENTS
+ fprintf (stream, _("\
+ -c print a warning if a comment is found\n"));
+#endif
}
\f
/* We have no need to default values of symbols. */
#define TARGET_FORMAT "som"
#endif
+#ifdef TE_LINUX
+/* Define to compile in an extra assembler option, -c, which enables a
+ warning (once per file) when a comment is encountered.
+ The hppa comment char is a `;' which tends to occur in random C asm
+ statements. A semicolon is a line separator for most assemblers.
+ It's hard to find these lurking semicolons. Thus... */
+#define WARN_COMMENTS 1
+#endif
+
/* FIXME. Why oh why aren't these defined somewhere globally? */
#ifndef FALSE
#define FALSE (0)
register int temp;
pseudo_typeS *pop;
+#ifdef WARN_COMMENTS
+ found_comment = 0;
+#endif
+
buffer = input_scrub_new_file (name);
listing_file (name);
#endif
/* Close the input file. */
input_scrub_close ();
+#ifdef WARN_COMMENTS
+ {
+ if (warn_comment && found_comment)
+ as_warn_where (found_comment_file, found_comment,
+ "first comment found here");
+ }
+#endif
}
/* For most MRI pseudo-ops, the line actually ends at the first