mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-25 12:00:31 +00:00
Fix bugs and make code tinier
- Fixed bug where stdio eof wasn't being sticky - Fixed bug where fseeko() wasn't clearing eof state - Removed assert() usage from libc favoring _unassert() / _npassert()
This commit is contained in:
parent
9b7c8db846
commit
d5910e2673
115 changed files with 510 additions and 290 deletions
4
third_party/double-conversion/README.cosmo
vendored
4
third_party/double-conversion/README.cosmo
vendored
|
@ -11,3 +11,7 @@ ORIGIN
|
|||
LICENSE
|
||||
|
||||
BSD 3-Clause License
|
||||
|
||||
LOCAL CHANGES
|
||||
|
||||
- Use _unassert() macro for undefined behavior on failed assertions
|
||||
|
|
|
@ -28,6 +28,8 @@ THIRD_PARTY_DOUBLECONVERSION_TEST_BINS = \
|
|||
$(THIRD_PARTY_DOUBLECONVERSION_TEST_COMS) \
|
||||
$(THIRD_PARTY_DOUBLECONVERSION_TEST_COMS:%=%.dbg)
|
||||
|
||||
THIRD_PARTY_DOUBLECONVERSION_ARTIFACTS += THIRD_PARTY_DOUBLECONVERSION_TEST_A
|
||||
|
||||
THIRD_PARTY_DOUBLECONVERSION_TEST_A_SRCS_CC = \
|
||||
third_party/double-conversion/test/cctest.cc \
|
||||
third_party/double-conversion/test/gay-fixed.cc \
|
||||
|
@ -52,6 +54,10 @@ THIRD_PARTY_DOUBLECONVERSION_TEST_A_HDRS = \
|
|||
third_party/double-conversion/test/gay-shortest.h \
|
||||
third_party/double-conversion/test/gay-shortest-single.h
|
||||
|
||||
THIRD_PARTY_DOUBLECONVERSION_TEST_A_SRCS = \
|
||||
$(THIRD_PARTY_DOUBLECONVERSION_TEST_A_SRCS_C) \
|
||||
$(THIRD_PARTY_DOUBLECONVERSION_TEST_A_SRCS_CC)
|
||||
|
||||
THIRD_PARTY_DOUBLECONVERSION_A_OBJS = \
|
||||
$(THIRD_PARTY_DOUBLECONVERSION_A_SRCS_C:%.c=o/$(MODE)/%.o) \
|
||||
$(THIRD_PARTY_DOUBLECONVERSION_A_SRCS_CC:%.cc=o/$(MODE)/%.o)
|
||||
|
|
3
third_party/double-conversion/test/cctest.cc
vendored
3
third_party/double-conversion/test/cctest.cc
vendored
|
@ -24,9 +24,6 @@
|
|||
// 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 "libc/isystem/stdio.h"
|
||||
#include "libc/isystem/stdlib.h"
|
||||
#include "libc/isystem/string.h"
|
||||
#include "third_party/double-conversion/test/cctest.h"
|
||||
// clang-format off
|
||||
|
||||
|
|
2
third_party/double-conversion/test/cctest.h
vendored
2
third_party/double-conversion/test/cctest.h
vendored
|
@ -26,8 +26,6 @@
|
|||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#ifndef CCTEST_H_
|
||||
#define CCTEST_H_
|
||||
#include "libc/isystem/stdio.h"
|
||||
#include "libc/isystem/string.h"
|
||||
#include "third_party/double-conversion/utils.h"
|
||||
// clang-format off
|
||||
|
||||
|
|
1
third_party/double-conversion/test/checks.h
vendored
1
third_party/double-conversion/test/checks.h
vendored
|
@ -26,7 +26,6 @@
|
|||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#ifndef V8_CHECKS_H_
|
||||
#define V8_CHECKS_H_
|
||||
#include "libc/isystem/string.h"
|
||||
#include "third_party/double-conversion/test/flags.h"
|
||||
// clang-format off
|
||||
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
// 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 "libc/isystem/stdlib.h"
|
||||
#include "third_party/double-conversion/bignum-dtoa.h"
|
||||
#include "third_party/double-conversion/ieee.h"
|
||||
#include "third_party/double-conversion/test/cctest.h"
|
||||
|
|
|
@ -24,8 +24,6 @@
|
|||
// 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 "libc/isystem/stdlib.h"
|
||||
#include "libc/isystem/string.h"
|
||||
#include "third_party/double-conversion/bignum.h"
|
||||
#include "third_party/double-conversion/test/cctest.h"
|
||||
#include "third_party/double-conversion/utils.h"
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
// 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 "libc/isystem/string.h"
|
||||
#include "third_party/double-conversion/double-conversion.h"
|
||||
#include "third_party/double-conversion/ieee.h"
|
||||
#include "third_party/double-conversion/test/cctest.h"
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
// 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 "libc/isystem/stdlib.h"
|
||||
#include "third_party/double-conversion/diy-fp.h"
|
||||
#include "third_party/double-conversion/test/cctest.h"
|
||||
#include "third_party/double-conversion/utils.h"
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
// 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 "libc/isystem/stdlib.h"
|
||||
#include "third_party/double-conversion/double-conversion.h"
|
||||
#include "third_party/double-conversion/ieee.h"
|
||||
#include "third_party/double-conversion/test/cctest.h"
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
// 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 "libc/isystem/stdlib.h"
|
||||
#include "third_party/double-conversion/diy-fp.h"
|
||||
#include "third_party/double-conversion/fast-dtoa.h"
|
||||
#include "third_party/double-conversion/ieee.h"
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
// 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 "libc/isystem/stdlib.h"
|
||||
#include "third_party/double-conversion/fixed-dtoa.h"
|
||||
#include "third_party/double-conversion/ieee.h"
|
||||
#include "third_party/double-conversion/test/cctest.h"
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
// 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 "libc/isystem/stdlib.h"
|
||||
#include "third_party/double-conversion/diy-fp.h"
|
||||
#include "third_party/double-conversion/ieee.h"
|
||||
#include "third_party/double-conversion/test/cctest.h"
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
// 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 "libc/isystem/stdlib.h"
|
||||
#include "third_party/double-conversion/bignum.h"
|
||||
#include "third_party/double-conversion/diy-fp.h"
|
||||
#include "third_party/double-conversion/ieee.h"
|
||||
|
|
4
third_party/double-conversion/utils.h
vendored
4
third_party/double-conversion/utils.h
vendored
|
@ -9,7 +9,11 @@
|
|||
#include "third_party/libcxx/cstring"
|
||||
// clang-format off
|
||||
|
||||
// [jart] use undefined behaavior to make code tinier
|
||||
// use ubsan build mode to troubleshoot errors
|
||||
#define DOUBLE_CONVERSION_ASSERT(x) _unassert(x)
|
||||
#define DOUBLE_CONVERSION_UNREACHABLE() unreachable
|
||||
#define DOUBLE_CONVERSION_UNIMPLEMENTED() notpossible
|
||||
|
||||
// Use DOUBLE_CONVERSION_NON_PREFIXED_MACROS to get unprefixed macros as was
|
||||
// the case in double-conversion releases prior to 3.1.6
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue