/*
- * Copyright (C) 2004, 2007-2009 Free Software Foundation
+ * Copyright (C) 2004, 2007-2010 Free Software Foundation, Inc.
* Written by Bruno Haible and Eric Blake
*
* This program is free software: you can redistribute it and/or modify
#include <string.h>
+#include "signature.h"
+SIGNATURE_CHECK (memmem, void *, (void const *, size_t, void const *, size_t));
+
#include <signal.h>
-#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "zerosize-ptr.h"
+#include "macros.h"
-#define ASSERT(expr) \
- do \
- { \
- if (!(expr)) \
- { \
- fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
- fflush (stderr); \
- abort (); \
- } \
- } \
- while (0)
+static void *
+null_ptr (void)
+{
+ return NULL;
+}
int
main (int argc, char *argv[])
{
const char input[] = "foo";
- const char *result = memmem (input, strlen (input), NULL, 0);
+ const char *result = memmem (input, strlen (input), null_ptr (), 0);
ASSERT (result == input);
}
{
size_t repeat = 10000;
size_t m = 1000000;
- char *needle =
+ const char *needle =
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
size_t n = strlen (needle);
{
size_t repeat = 10000;
size_t m = 1000000;
- char *haystack =
+ const char *haystack =
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB";
size_t n = strlen (haystack);