# New Ticket Created by Andrew Whitworth
# Please include the string: [perl #56968]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=56968 >
I found this today while looking for error-reporting functions. The
function src/warnings.c:Parrot_warn_s is almost completely unused
except in 1 test in t/src/warnings.t. The attached patch removes this
function and the associated test because it's dead code with no
apparent purpose.
On a side note, if people don't want to delete this function for
whatever reason, the function prototype should be changed from
NULLOK_INTERP to PARROT_INTERP, since the first line of the function
tests for the existance of interp and returns an error if it's null.
Better to find a null interp error at compile time then at runtime.
--Andrew Whitworth
Index: src/warnings.c
===================================================================
--- src/warnings.c (revision 29495)
+++ src/warnings.c (working copy)
@@ -117,39 +117,6 @@
/*
-=item C<INTVAL Parrot_warn_s>
-
-The Parrot C<STRING> warning/error reporter.
-
-Returns 2 on error, 1 on success.
-
-C<message, ..> can be a C<Parrot_vsprintf_s()> format with arguments.
-
-=cut
-
-*/
-
-PARROT_API
-INTVAL
-Parrot_warn_s(NULLOK_INTERP, INTVAL warnclass,
- ARGIN(STRING *message), ...)
-{
- if (!interp || !PARROT_WARNINGS_test(interp, warnclass))
- return 2;
- else {
- STRING *targ;
- va_list args;
-
- va_start(args, message);
- targ = Parrot_vsprintf_s(interp, message, args);
- va_end(args);
-
- return print_warning(interp, targ);
- }
-}
-
-/*
-
=back
=head1 SEE ALSO
Index: include/parrot/string_funcs.h
===================================================================
--- include/parrot/string_funcs.h (revision 29495)
+++ include/parrot/string_funcs.h (working copy)
@@ -86,6 +86,14 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
+PARROT_CANNOT_RETURN_NULL
+PMC* Parrot_string_split(PARROT_INTERP,
+ ARGIN_NULLOK(STRING *delim),
+ ARGIN_NULLOK(STRING *str))
+ __attribute__nonnull__(1);
+
+PARROT_API
+PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
STRING* Parrot_string_trans_charset(PARROT_INTERP,
ARGMOD_NULLOK(STRING *src),
@@ -425,14 +433,6 @@
PARROT_API
PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-PMC* Parrot_string_split(PARROT_INTERP,
- ARGIN_NULLOK(STRING *delim),
- ARGIN_NULLOK(STRING *str))
- __attribute__nonnull__(1);
-
-PARROT_API
-PARROT_WARN_UNUSED_RESULT
INTVAL string_str_index(PARROT_INTERP,
ARGIN(const STRING *s),
ARGIN(const STRING *s2),
Index: include/parrot/warnings.h
===================================================================
--- include/parrot/warnings.h (revision 29495)
+++ include/parrot/warnings.h (working copy)
@@ -65,14 +65,6 @@
__attribute__nonnull__(3);
PARROT_API
-INTVAL Parrot_warn_s(
- NULLOK_INTERP,
- INTVAL warnclass,
- ARGIN(STRING *message),
- ...)
- __attribute__nonnull__(3);
-
-PARROT_API
void print_pbc_location(PARROT_INTERP)
__attribute__nonnull__(1);
Index: t/src/warnings.t
===================================================================
--- t/src/warnings.t (revision 29495)
+++ t/src/warnings.t (working copy)
@@ -115,84 +115,6 @@
2
OUTPUT
-c_output_is( <<'CODE', <<'OUTPUT', "Parrot_warn_s" );
-
-#include <parrot/parrot.h>
-#include <parrot/embed.h>
-
-int
-main(int argc, char* argv[])
-{
- Interp *interp;
- int error_val;
- STRING *S;
-
- interp = Parrot_new(NULL);
- if (!interp) {
- return 1;
- }
- PARROT_WARNINGS_on(interp, PARROT_WARNINGS_ALL_FLAG);
-
- S = Parrot_sprintf_c(interp, "eek");
- error_val = Parrot_warn_s(interp, PARROT_WARNINGS_ALL_FLAG, S);
- PIO_eprintf(interp, "%d\n", error_val);
-
- /* warnings are on, this should return an error */
- error_val = Parrot_warn_s(interp, PARROT_WARNINGS_NONE_FLAG, S);
- PIO_eprintf(interp, "%d\n", error_val);
-
- error_val = Parrot_warn_s(interp, PARROT_WARNINGS_UNDEF_FLAG, S);
- PIO_eprintf(interp, "%d\n", error_val);
-
- error_val = Parrot_warn_s(interp, PARROT_WARNINGS_IO_FLAG, S);
- PIO_eprintf(interp, "%d\n", error_val);
-
- error_val = Parrot_warn_s(interp, PARROT_WARNINGS_PLATFORM_FLAG, S);
- PIO_eprintf(interp, "%d\n", error_val);
-
- error_val = Parrot_warn_s(interp, PARROT_WARNINGS_DYNEXT_FLAG, S);
- PIO_eprintf(interp, "%d\n", error_val);
-
- #ifndef __cplusplus
- error_val = Parrot_warn_s(interp, 0, "eek"); /* should return error */
- #else
- /* Fake the result to avoid rewrite the test */
- error_val = 2;
- #endif
- PIO_eprintf(interp, "%d\n", error_val);
-
- #ifndef __cplusplus
- error_val = Parrot_warn_s(NULL, 0, "eek"); /* should return error */
- #else
- /* Fake the result to avoid rewrite the test */
- error_val = 2;
- #endif
- PIO_eprintf(interp, "%d\n", error_val);
-
- Parrot_exit(interp, 0);
- return 0;
-}
-CODE
-eek
-(null)
-1
-2
-eek
-(null)
-1
-eek
-(null)
-1
-eek
-(null)
-1
-eek
-(null)
-1
-2
-2
-OUTPUT
-
# Local Variables:
# mode: cperl
# cperl-indent-level: 4