summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-06-07 03:35:27 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-06-07 03:35:28 +0000
commit19718f0cd605f55df26823c67b62ceab6fe99a00 (patch)
treebcf9d56b53bd10b8e353220aa6b9dc442b6f8dfa
parent1cada9b3ea2724ebb0dee89a7f9a8f00a0ece2ae (diff)
parent47ba295b0679148970bbffc9b76a3651efea9502 (diff)
downloadbionic-19718f0cd605f55df26823c67b62ceab6fe99a00.zip
bionic-19718f0cd605f55df26823c67b62ceab6fe99a00.tar.gz
bionic-19718f0cd605f55df26823c67b62ceab6fe99a00.tar.bz2
Merge "Rewrite and hide longjmperror."
-rw-r--r--libc/Android.mk1
-rw-r--r--libc/bionic/assert.cpp6
-rw-r--r--libc/include/setjmp.h1
-rw-r--r--libc/upstream-netbsd/lib/libc/gen/setjmperr.c56
4 files changed, 4 insertions, 60 deletions
diff --git a/libc/Android.mk b/libc/Android.mk
index ee8981a..08c9ddd 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -270,7 +270,6 @@ libc_upstream_netbsd_src_files := \
upstream-netbsd/lib/libc/gen/nice.c \
upstream-netbsd/lib/libc/gen/popen.c \
upstream-netbsd/lib/libc/gen/psignal.c \
- upstream-netbsd/lib/libc/gen/setjmperr.c \
upstream-netbsd/lib/libc/gen/utime.c \
upstream-netbsd/lib/libc/gen/utmp.c \
upstream-netbsd/lib/libc/isc/ev_streams.c \
diff --git a/libc/bionic/assert.cpp b/libc/bionic/assert.cpp
index ba67143..985fc38 100644
--- a/libc/bionic/assert.cpp
+++ b/libc/bionic/assert.cpp
@@ -34,10 +34,12 @@
void __assert(const char* file, int line, const char* failed_expression) {
__libc_fatal("%s:%d: assertion \"%s\" failed", file, line, failed_expression);
- /* NOTREACHED */
}
void __assert2(const char* file, int line, const char* function, const char* failed_expression) {
__libc_fatal("%s:%d: %s: assertion \"%s\" failed", file, line, function, failed_expression);
- /* NOTREACHED */
+}
+
+extern "C" __LIBC_HIDDEN__ void longjmperror() {
+ __libc_fatal("longjmp botch");
}
diff --git a/libc/include/setjmp.h b/libc/include/setjmp.h
index 68fdcef..02b06f5 100644
--- a/libc/include/setjmp.h
+++ b/libc/include/setjmp.h
@@ -50,7 +50,6 @@ __BEGIN_DECLS
int _setjmp(jmp_buf);
void _longjmp(jmp_buf, int);
-void longjmperror(void);
int setjmp(jmp_buf);
void longjmp(jmp_buf, int);
diff --git a/libc/upstream-netbsd/lib/libc/gen/setjmperr.c b/libc/upstream-netbsd/lib/libc/gen/setjmperr.c
deleted file mode 100644
index 5b1432e..0000000
--- a/libc/upstream-netbsd/lib/libc/gen/setjmperr.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* $NetBSD: setjmperr.c,v 1.8 2012/06/24 15:26:03 christos Exp $ */
-
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-static char sccsid[] = "@(#)setjmperr.c 8.1 (Berkeley) 6/4/93";
-#else
-__RCSID("$NetBSD: setjmperr.c,v 1.8 2012/06/24 15:26:03 christos Exp $");
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-/*
- * This routine is called from longjmp() when an error occurs.
- * Programs that wish to exit gracefully from this error may
- * write their own versions.
- * If this routine returns, the program is aborted.
- */
-
-#include <setjmp.h>
-#include <unistd.h>
-
-void
-longjmperror(void)
-{
-#define ERRMSG "longjmp botch.\n"
- (void)write(STDERR_FILENO, ERRMSG, sizeof(ERRMSG) - 1);
-}