summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2017-08-21 16:30:40 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2017-08-21 16:30:49 +0900
commitaddc69dda437488e8a5d89c800931f9703eca29b (patch)
treeedfd21ca2a50df0779100bebcef66c80065f2ba9 /src
parent7df1602b129bd56916aaa6037a9cb84e1bdd77d4 (diff)
downloadlzop-addc69dda437488e8a5d89c800931f9703eca29b.tar.gz
lzop-addc69dda437488e8a5d89c800931f9703eca29b.tar.bz2
lzop-addc69dda437488e8a5d89c800931f9703eca29b.zip
Imported Upstream version 1.04upstream/1.04submit/upstream/20170906.015405
Change-Id: Ia672514693f8c284b333fcb40f4826fa96ad61e6 Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am16
-rw-r--r--src/Makefile.in516
-rw-r--r--src/c_ansic.c9
-rw-r--r--src/c_ansim.c9
-rw-r--r--src/c_init.c9
-rw-r--r--src/c_none.c9
-rw-r--r--src/c_screen.c9
-rw-r--r--src/compress.c10
-rw-r--r--src/conf.h73
-rw-r--r--src/console.h9
-rw-r--r--src/djgpp2.c9
-rw-r--r--src/filter.c9
-rw-r--r--src/frames.c9
-rw-r--r--src/frames.h6
-rw-r--r--src/help.c13
-rw-r--r--src/lzop.c45
-rw-r--r--src/mblock.c41
-rw-r--r--src/miniacc.h4830
-rw-r--r--src/p_lzo.c19
-rw-r--r--src/s_curses.c9
-rw-r--r--src/s_djgpp2.c9
-rw-r--r--src/s_object.c9
-rw-r--r--src/s_vcsa.c9
-rw-r--r--src/screen.h9
-rw-r--r--src/util.c14
-rw-r--r--src/version.h8
26 files changed, 3068 insertions, 2649 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index 051db8d..0000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-## Process this file with automake to produce Makefile.in
-#
-# Copyright (C) 1996-2010 Markus F.X.J. Oberhumer
-#
-
-bin_PROGRAMS = lzop
-
-lzop_SOURCES = \
- lzop.c compress.c filter.c help.c mblock.c p_lzo.c util.c \
- c_init.c c_none.c c_ansim.c c_ansic.c c_screen.c \
- s_object.c s_curses.c s_djgpp2.c s_vcsa.c \
- frames.c djgpp2.c
-
-EXTRA_DIST = \
- conf.h console.h frames.h miniacc.h screen.h version.h
-
diff --git a/src/Makefile.in b/src/Makefile.in
deleted file mode 100644
index ebbd843..0000000
--- a/src/Makefile.in
+++ /dev/null
@@ -1,516 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-#
-# Copyright (C) 1996-2010 Markus F.X.J. Oberhumer
-#
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-bin_PROGRAMS = lzop$(EXEEXT)
-subdir = src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
-PROGRAMS = $(bin_PROGRAMS)
-am_lzop_OBJECTS = lzop.$(OBJEXT) compress.$(OBJEXT) filter.$(OBJEXT) \
- help.$(OBJEXT) mblock.$(OBJEXT) p_lzo.$(OBJEXT) util.$(OBJEXT) \
- c_init.$(OBJEXT) c_none.$(OBJEXT) c_ansim.$(OBJEXT) \
- c_ansic.$(OBJEXT) c_screen.$(OBJEXT) s_object.$(OBJEXT) \
- s_curses.$(OBJEXT) s_djgpp2.$(OBJEXT) s_vcsa.$(OBJEXT) \
- frames.$(OBJEXT) djgpp2.$(OBJEXT)
-lzop_OBJECTS = $(am_lzop_OBJECTS)
-lzop_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo " CC " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo " CCLD " $@;
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo " GEN " $@;
-SOURCES = $(lzop_SOURCES)
-DIST_SOURCES = $(lzop_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-configure_CFLAGS = @configure_CFLAGS@
-configure_CPPFLAGS = @configure_CPPFLAGS@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-lzop_SOURCES = \
- lzop.c compress.c filter.c help.c mblock.c p_lzo.c util.c \
- c_init.c c_none.c c_ansim.c c_ansic.c c_screen.c \
- s_object.c s_curses.c s_djgpp2.c s_vcsa.c \
- frames.c djgpp2.c
-
-EXTRA_DIST = \
- conf.h console.h frames.h miniacc.h screen.h version.h
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign src/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- for p in $$list; do echo "$$p $$p"; done | \
- sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p; \
- then echo "$$p"; echo "$$p"; else :; fi; \
- done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
- -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
- sed 'N;N;N;s,\n, ,g' | \
- $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
- { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
- if ($$2 == $$4) files[d] = files[d] " " $$1; \
- else { print "f", $$3 "/" $$4, $$1; } } \
- END { for (d in files) print "f", d, files[d] }' | \
- while read type dir files; do \
- if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
- test -z "$$files" || { \
- echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
- $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
- } \
- ; done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
- files=`for p in $$list; do echo "$$p"; done | \
- sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-lzop$(EXEEXT): $(lzop_OBJECTS) $(lzop_DEPENDENCIES)
- @rm -f lzop$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(lzop_OBJECTS) $(lzop_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c_ansic.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c_ansim.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c_init.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c_none.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c_screen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compress.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/djgpp2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/frames.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzop.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mblock.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/p_lzo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s_curses.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s_djgpp2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s_object.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s_vcsa.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(PROGRAMS)
-installdirs:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-binPROGRAMS
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
- clean-generic ctags distclean distclean-compile \
- distclean-generic distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-binPROGRAMS \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-binPROGRAMS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c_ansic.c b/src/c_ansic.c
index 9a1a099..833d611 100644
--- a/src/c_ansic.c
+++ b/src/c_ansic.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -84,7 +84,4 @@ console_t console_ansi_color =
#endif /* USE_ANSI */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/c_ansim.c b/src/c_ansim.c
index bec1409..db59069 100644
--- a/src/c_ansim.c
+++ b/src/c_ansim.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -72,7 +72,4 @@ console_t console_ansi_mono =
#endif /* USE_ANSI */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/c_init.c b/src/c_init.c
index 510d20e..e4ffcaa 100644
--- a/src/c_init.c
+++ b/src/c_init.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -163,7 +163,4 @@ void con_fprintf(FILE *f, const char *format, ...)
#endif /* USE_CONSOLE */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/c_none.c b/src/c_none.c
index 6a19f2c..8854c6f 100644
--- a/src/c_none.c
+++ b/src/c_none.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -90,7 +90,4 @@ console_t console_none =
#endif /* USE_CONSOLE */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/c_screen.c b/src/c_screen.c
index 483531e..2b52327 100644
--- a/src/c_screen.c
+++ b/src/c_screen.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -207,7 +207,4 @@ console_t console_screen =
#endif /* USE_SCREEN */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/compress.c b/src/compress.c
index eaa9407..fb437ac 100644
--- a/src/compress.c
+++ b/src/compress.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -391,8 +391,4 @@ void x_filter(lzo_bytep p, lzo_uint l, const header_t *h)
}
-
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/conf.h b/src/conf.h
index 6c7e36e..db5488f 100644
--- a/src/conf.h
+++ b/src/conf.h
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -29,6 +29,22 @@
#ifndef __LZOP_CONF_H
#define __LZOP_CONF_H 1
+#if defined(_WIN32)
+/* disable silly warnings about using "deprecated" POSIX functions like fopen() */
+#ifndef _CRT_NONSTDC_NO_DEPRECATE
+#define _CRT_NONSTDC_NO_DEPRECATE 1
+#endif
+#ifndef _CRT_NONSTDC_NO_WARNINGS
+#define _CRT_NONSTDC_NO_WARNINGS 1
+#endif
+#ifndef _CRT_SECURE_NO_DEPRECATE
+#define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#ifndef _CRT_SECURE_NO_WARNINGS
+#define _CRT_SECURE_NO_WARNINGS 1
+#endif
+#endif
+
#if defined(LZOP_HAVE_CONFIG_H)
# include <config.h>
#endif
@@ -53,8 +69,8 @@
#endif
#if !defined(LZO_VERSION)
# error "you need the LZO library"
-#elif (LZO_VERSION < 0x1040)
-# error "please upgrade your LZO package"
+#elif (LZO_VERSION < 0x2080) && 0
+# error "please upgrade your LZO package to version 2.08 or newer"
#endif
#endif
@@ -610,23 +626,13 @@ typedef struct
lzo_bytep mb_mem_alloc;
lzo_uint32 mb_size_alloc;
lzo_uint32 mb_align;
- /* the following fields are not yet used but may prove useful for
- * adding new algorithms */
- lzo_uint32 mb_flags;
- lzo_uint32 mb_id;
- lzo_uint32 mb_len;
- lzo_uint32 mb_adler32;
- lzo_uint32 mb_crc32;
}
mblock_t;
#define mblock_p mblock_t *
-lzo_bool mb_alloc(mblock_p m, lzo_uint32 size, lzo_uint align);
+lzo_bool mb_alloc(mblock_p m, lzo_uint32 size, lzo_uint32 align);
void mb_free(mblock_p m);
-lzo_bool mb_init(mblock_p m, lzo_uint32 size, lzo_uint align,
- lzo_voidp heap, lzo_uint32 heap_size);
-
/*************************************************************************
// util.c
@@ -675,6 +681,7 @@ char *maybe_rename_file(const char *original_name);
// other globals
**************************************************************************/
+extern const char lzop_rcsid[];
extern const char *progname;
extern MODE_T u_mask;
extern time_t current_time;
@@ -703,37 +710,6 @@ void sysinfo_djgpp(void);
# define USE_LZO1X_1_15 1
#endif
-#if defined(LZO_USE_ASM_1)
-#if !defined(LZO_EXTERN_CDECL)
-#define LZO_EXTERN_CDECL(r) LZO_EXTERN(r)
-#endif
-LZO_EXTERN_CDECL(int)
-lzo1x_decompress_asm_fast
- ( const lzo_bytep src, lzo_uint src_len,
- lzo_bytep dst, lzo_uintp dst_len,
- lzo_voidp wrkmem /* NOT USED */ );
-LZO_EXTERN_CDECL(int)
-lzo1x_decompress_asm_fast_safe
- ( const lzo_bytep src, lzo_uint src_len,
- lzo_bytep dst, lzo_uintp dst_len,
- lzo_voidp wrkmem /* NOT USED */ );
-# define lzo1x_decompress lzo1x_decompress_asm_fast
-# define lzo1x_decompress_safe lzo1x_decompress_asm_fast_safe
-#elif defined(LZO_USE_ASM_2)
-LZO_EXTERN_CDECL(int)
-_lzo1x_decompress_asm_fast
- ( const lzo_bytep src, lzo_uint src_len,
- lzo_bytep dst, lzo_uintp dst_len,
- lzo_voidp wrkmem /* NOT USED */ );
-LZO_EXTERN_CDECL(int)
-_lzo1x_decompress_asm_fast_safe
- ( const lzo_bytep src, lzo_uint src_len,
- lzo_bytep dst, lzo_uintp dst_len,
- lzo_voidp wrkmem /* NOT USED */ );
-# define lzo1x_decompress _lzo1x_decompress_asm_fast
-# define lzo1x_decompress_safe _lzo1x_decompress_asm_fast_safe
-#endif
-
#endif /* WITH_LZO */
@@ -747,7 +723,4 @@ _lzo1x_decompress_asm_fast_safe
#endif /* already included */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/console.h b/src/console.h
index d55a558..c0333eb 100644
--- a/src/console.h
+++ b/src/console.h
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -191,7 +191,4 @@ extern console_t console_screen;
#endif /* USE_CONSOLE */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/djgpp2.c b/src/djgpp2.c
index 22dd993..9cb4b32 100644
--- a/src/djgpp2.c
+++ b/src/djgpp2.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -175,7 +175,4 @@ void sysinfo_djgpp(void)
#endif /* __DJGPP__ */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/filter.c b/src/filter.c
index e2023b4..92f42b0 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -161,7 +161,4 @@ void t_unmtf(lzo_bytep p, lzo_uint l)
}
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/frames.c b/src/frames.c
index 4a065b3..e17cd41 100644
--- a/src/frames.c
+++ b/src/frames.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -241,7 +241,4 @@ void screen_show_frames(screen_t *screen)
#endif /* USE_FRAMES */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/frames.h b/src/frames.h
index 0069ffe..021f684 100644
--- a/src/frames.h
+++ b/src/frames.h
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -328,3 +328,5 @@ static const unsigned char compressed_frames[3522] = {
0xb1, 0x20, 0x10, 0x05, 0x11, 0xcb, 0xb0, 0x18, 0x08, 0x30, 0x84, 0x20,
0x05, 0x6c, 0x2c, 0x11, 0x00, 0x00
};
+
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/help.c b/src/help.c
index 7e15bf5..b52114a 100644
--- a/src/help.c
+++ b/src/help.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -48,7 +48,7 @@ void head(void)
fg = con_fg(f,FG_GREEN);
con_fprintf(f,
" Lempel-Ziv-Oberhumer Packer\n"
- " Copyright (C) 1996 - 2010\n"
+ " Copyright (C) 1996 - 2017\n"
"lzop v%-11s Markus Franz Xaver Johannes Oberhumer %20s\n"
"\n",
LZOP_VERSION_STRING, LZOP_VERSION_DATE);
@@ -165,7 +165,7 @@ con_fprintf(f,
" You should have received a copy of the GNU General Public License\n"
" along with this program; see the file COPYING.\n"
" If not, write to the Free Software Foundation, Inc.,\n"
-" 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n"
"\n"
" Markus F.X.J. Oberhumer\n"
" <markus@oberhumer.com>\n"
@@ -269,7 +269,4 @@ void sysinfo(void)
}
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/lzop.c b/src/lzop.c
index 5571e89..e34be83 100644
--- a/src/lzop.c
+++ b/src/lzop.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -209,11 +209,17 @@ void e_envopt(const char *n)
#endif
-RETSIGTYPE __acc_cdecl_sighandler e_sighandler(acc_signo_t signo)
+#if defined(__cplusplus)
+extern "C" {
+#endif
+static void __acc_cdecl_sighandler e_sighandler(acc_signo_t signo)
{
UNUSED(signo);
e_exit(EXIT_FATAL);
}
+#if defined(__cplusplus)
+}
+#endif
/*************************************************************************
@@ -742,12 +748,10 @@ void init_compress_header(header_t *h, const file_t *fip, const file_t *fop)
h->mode = fix_mode_for_header(fip->st.st_mode);
- if (fip->st.st_mtime)
+ if (fip->st.st_mtime > 0)
{
- h->mtime_low = (lzo_uint32) (fip->st.st_mtime);
- h->mtime_high = (lzo_uint32) (fip->st.st_mtime >> 16 >> 16);
- if ((lzo_int32) h->mtime_high < 0)
- h->mtime_high = 0;
+ h->mtime_low = (lzo_uint32) (fip->st.st_mtime);
+ h->mtime_high = (lzo_uint32) ((fip->st.st_mtime >> 16) >> 16);
}
if (fip->name[0] && fip->fd != STDIN_FILENO)
@@ -1539,7 +1543,9 @@ static lzo_bool check_stdout(file_t *ft)
static lzo_bool open_stdin(file_t *ft)
{
+#if !defined(NO_SETMODE)
static lzo_bool setmode_done = 0;
+#endif
assert(ft->fd == -1);
f_reset(ft);
@@ -1556,8 +1562,8 @@ static lzo_bool open_stdin(file_t *ft)
return 0;
}
}
-#endif
setmode_done = 1;
+#endif
ft->st.st_mtime = time(NULL);
#if 1 && defined(HAVE_FSTAT)
@@ -1575,7 +1581,9 @@ static lzo_bool open_stdin(file_t *ft)
static lzo_bool open_stdout(file_t *ft)
{
+#if !defined(NO_SETMODE)
static lzo_bool setmode_done = 0;
+#endif
assert(ft->fd == -1);
f_reset(ft);
@@ -1597,8 +1605,8 @@ static lzo_bool open_stdout(file_t *ft)
return 0;
}
}
-#endif
setmode_done = 1;
+#endif
return 1;
}
@@ -2583,7 +2591,7 @@ static int do_option(acc_getopt_p g, int optc)
opt_console = CON_NONE;
fprintf(stdout,"lzop %s\n",LZOP_VERSION_STRING);
fprintf(stdout,"LZO library %s\n",lzo_version_string());
- fprintf(stdout,"Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer\n");
+ fprintf(stdout,"Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer\n");
e_exit(EXIT_OK);
break;
case 'x':
@@ -2984,15 +2992,12 @@ int __acc_cdecl_main main(int argc, char *argv[])
static char default_argv0[] = "lzop";
int cmdline_cmd = CMD_NONE;
- sanity_check();
-
-#if defined(__MINT__)
- __binmode(1);
- __set_binmode(stdout, 0);
- __set_binmode(stderr, 0);
+#if (ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_CC_MSC) && defined(_WRITE_ABORT_MSG) && defined(_CALL_REPORTFAULT)
+ _set_abort_behavior(_WRITE_ABORT_MSG, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
#endif
acc_wildargv(&argc, &argv);
+ sanity_check();
#if defined(__DJGPP__)
opt_shortname = !_USE_LFN;
@@ -3147,6 +3152,7 @@ int __acc_cdecl_main main(int argc, char *argv[])
opt_console = CON_SCREEN;
(void) ((con_intro(con_term) || (help(), 0)));
e_exit(EXIT_OK);
+ break;
case CMD_VERSION:
version();
e_exit(EXIT_OK);
@@ -3195,7 +3201,4 @@ int __acc_cdecl_main main(int argc, char *argv[])
}
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/mblock.c b/src/mblock.c
index 09566cd..d57acd7 100644
--- a/src/mblock.c
+++ b/src/mblock.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -33,44 +33,16 @@
//
**************************************************************************/
-static void do_init(mblock_p m, lzo_uint32 size, lzo_uint align)
+static void do_init(mblock_p m, lzo_uint32 size, lzo_uint32 align)
{
memset(m,0,sizeof(*m));
m->mb_size = size;
m->mb_align = (align > 1) ? align : 1;
assert((m->mb_align & (m->mb_align - 1)) == 0);
- m->mb_adler32 = ADLER32_INIT_VALUE;
- m->mb_crc32 = CRC32_INIT_VALUE;
}
-#if 0
-lzo_bool mb_init(mblock_p m, lzo_uint32 size, lzo_uint align,
- lzo_voidp heap, lzo_uint32 heap_size)
-{
- do_init(m,size,align);
- if (m->mb_size == 0)
- return 1;
-
- if (heap == 0)
- return 0;
- m->mb_mem_alloc = (lzo_bytep) heap;
- m->mb_size_alloc = heap_size;
- assert(m->mb_size_alloc >= m->mb_size + m->mb_align - 1);
-
- m->mb_mem = LZO_PTR_ALIGN_UP(m->mb_mem_alloc,m->mb_align);
- assert(m->mb_mem >= m->mb_mem_alloc);
- assert(m->mb_mem + m->mb_size <= m->mb_mem_alloc + m->mb_size_alloc);
-#if 0
- printf("m_init: %p %p %8ld %8ld %8ld\n", m->mb_mem_alloc, m->mb_mem,
- (long) m->mb_size_alloc, (long) m->mb_size, (long) m->mb_align);
-#endif
- return 1;
-}
-#endif
-
-
-lzo_bool mb_alloc(mblock_p m, lzo_uint32 size, lzo_uint align)
+lzo_bool mb_alloc(mblock_p m, lzo_uint32 size, lzo_uint32 align)
{
do_init(m,size,align);
if (m->mb_size == 0)
@@ -100,7 +72,4 @@ void mb_free(mblock_p m)
}
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/miniacc.h b/src/miniacc.h
index 4c0d210..5f44085 100644
--- a/src/miniacc.h
+++ b/src/miniacc.h
@@ -2,21 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -32,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -42,16 +28,10 @@
#ifndef __ACC_H_INCLUDED
#define __ACC_H_INCLUDED 1
-#define ACC_VERSION 20101019L
+#define ACC_VERSION 20170808L
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
# define __CYGWIN__ __CYGWIN32__
#endif
-#if defined(__IBMCPP__) && !defined(__IBMC__)
-# define __IBMC__ __IBMCPP__
-#endif
-#if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER)
-# define __INTEL_COMPILER __ICL
-#endif
#if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
# define _ALL_SOURCE 1
#endif
@@ -60,20 +40,53 @@
# define __LONG_MAX__ 9223372036854775807L
# endif
#endif
-#if defined(__INTEL_COMPILER) && defined(__linux__)
-# pragma warning(disable: 193)
+#if 0
+#elif !defined(__ACC_LANG_OVERRIDE)
+#if (defined(__clang__) || defined(__GNUC__)) && defined(__ASSEMBLER__)
+# if (__ASSEMBLER__+0) <= 0
+# error "__ASSEMBLER__"
+# else
+# define ACC_LANG_ASSEMBLER 1
+# endif
+#elif defined(__cplusplus)
+# if (__cplusplus+0) <= 0
+# error "__cplusplus"
+# elif (__cplusplus < 199711L)
+# define ACC_LANG_CXX 1
+# elif defined(_MSC_VER) && defined(_MSVC_LANG) && (_MSVC_LANG+0 >= 201402L) && 1
+# define ACC_LANG_CXX _MSVC_LANG
+# else
+# define ACC_LANG_CXX __cplusplus
+# endif
+# define ACC_LANG_CPLUSPLUS ACC_LANG_CXX
+#else
+# if defined(__STDC_VERSION__) && (__STDC_VERSION__+0 >= 199409L)
+# define ACC_LANG_C __STDC_VERSION__
+# else
+# define ACC_LANG_C 1
+# endif
#endif
-#if defined(__KEIL__) && defined(__C166__)
-# pragma warning disable = 322
-#elif 0 && defined(__C251__)
-# pragma warning disable = 322
#endif
-#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
-# if (_MSC_VER >= 1300)
+#if !defined(ACC_CFG_NO_DISABLE_WUNDEF)
+#if defined(__ARMCC_VERSION)
+# pragma diag_suppress 193
+#elif defined(__clang__) && defined(__clang_minor__)
+# pragma clang diagnostic ignored "-Wundef"
+#elif defined(__INTEL_COMPILER)
+# pragma warning(disable: 193)
+#elif defined(__KEIL__) && defined(__C166__)
+# pragma warning disable = 322
+#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__PATHSCALE__)
+# if ((__GNUC__-0) >= 5 || ((__GNUC__-0) == 4 && (__GNUC_MINOR__-0) >= 2))
+# pragma GCC diagnostic ignored "-Wundef"
+# endif
+#elif defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
+# if ((_MSC_VER-0) >= 1300)
# pragma warning(disable: 4668)
# endif
#endif
-#if defined(__POCC__) && defined(_WIN32)
+#endif
+#if 0 && defined(__POCC__) && defined(_WIN32)
# if (__POCC__ >= 400)
# pragma warn(disable: 2216)
# endif
@@ -86,6 +99,20 @@
#if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
# pragma option -h
#endif
+#if !(ACC_CFG_NO_DISABLE_WCRTNONSTDC)
+#ifndef _CRT_NONSTDC_NO_DEPRECATE
+#define _CRT_NONSTDC_NO_DEPRECATE 1
+#endif
+#ifndef _CRT_NONSTDC_NO_WARNINGS
+#define _CRT_NONSTDC_NO_WARNINGS 1
+#endif
+#ifndef _CRT_SECURE_NO_DEPRECATE
+#define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#ifndef _CRT_SECURE_NO_WARNINGS
+#define _CRT_SECURE_NO_WARNINGS 1
+#endif
+#endif
#if (ACC_CFG_NO_CONFIG_HEADER)
#elif defined(ACC_CFG_CONFIG_HEADER)
# include ACC_CFG_CONFIG_HEADER
@@ -110,7 +137,9 @@
#define __INT_MAX__ 2147483647
#endif
#ifndef __LONG_MAX__
-#if defined(__alpha__) || defined(_LP64) || defined(__MIPS_PSX2__)
+#if defined(_ILP32) || defined(__ILP32__)
+#define __LONG_MAX__ 2147483647L
+#elif defined(__alpha__) || defined(_LP64) || defined(__MIPS_PSX2__)
#define __LONG_MAX__ 9223372036854775807L
#else
#define __LONG_MAX__ 2147483647L
@@ -158,12 +187,14 @@
# include <limits.h>
#endif
#if 0
-#define ACC_0xffffL 0xfffful
-#define ACC_0xffffffffL 0xfffffffful
+#define ACC_0xffffUL 0xfffful
+#define ACC_0xffffffffUL 0xfffffffful
#else
-#define ACC_0xffffL 65535ul
-#define ACC_0xffffffffL 4294967295ul
+#define ACC_0xffffUL 65535ul
+#define ACC_0xffffffffUL 4294967295ul
#endif
+#define ACC_0xffffL ACC_0xffffUL
+#define ACC_0xffffffffL ACC_0xffffffffUL
#if (ACC_0xffffL == ACC_0xffffffffL)
# error "your preprocessor is broken 1"
#endif
@@ -178,6 +209,13 @@
# error "your preprocessor is broken 4"
#endif
#endif
+#if defined(__COUNTER__)
+# ifndef ACC_CFG_USE_COUNTER
+# define ACC_CFG_USE_COUNTER 1
+# endif
+#else
+# undef ACC_CFG_USE_COUNTER
+#endif
#if (UINT_MAX == ACC_0xffffL)
#if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
# if !defined(MSDOS)
@@ -197,10 +235,12 @@
# endif
#endif
#endif
-#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL)
+#if (UINT_MAX == ACC_0xffffL)
+#if defined(_MSC_VER) && defined(M_I86HM)
# define ptrdiff_t long
# define _PTRDIFF_T_DEFINED 1
#endif
+#endif
#if (UINT_MAX == ACC_0xffffL)
# undef __ACC_RENAME_A
# undef __ACC_RENAME_B
@@ -308,14 +348,31 @@
#endif
#define ACC_PP_STRINGIZE(x) #x
#define ACC_PP_MACRO_EXPAND(x) ACC_PP_STRINGIZE(x)
+#define ACC_PP_CONCAT0() /*empty*/
+#define ACC_PP_CONCAT1(a) a
#define ACC_PP_CONCAT2(a,b) a ## b
#define ACC_PP_CONCAT3(a,b,c) a ## b ## c
#define ACC_PP_CONCAT4(a,b,c,d) a ## b ## c ## d
#define ACC_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
+#define ACC_PP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f
+#define ACC_PP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g
+#define ACC_PP_ECONCAT0() ACC_PP_CONCAT0()
+#define ACC_PP_ECONCAT1(a) ACC_PP_CONCAT1(a)
#define ACC_PP_ECONCAT2(a,b) ACC_PP_CONCAT2(a,b)
#define ACC_PP_ECONCAT3(a,b,c) ACC_PP_CONCAT3(a,b,c)
#define ACC_PP_ECONCAT4(a,b,c,d) ACC_PP_CONCAT4(a,b,c,d)
#define ACC_PP_ECONCAT5(a,b,c,d,e) ACC_PP_CONCAT5(a,b,c,d,e)
+#define ACC_PP_ECONCAT6(a,b,c,d,e,f) ACC_PP_CONCAT6(a,b,c,d,e,f)
+#define ACC_PP_ECONCAT7(a,b,c,d,e,f,g) ACC_PP_CONCAT7(a,b,c,d,e,f,g)
+#define ACC_PP_EMPTY /*empty*/
+#define ACC_PP_EMPTY0() /*empty*/
+#define ACC_PP_EMPTY1(a) /*empty*/
+#define ACC_PP_EMPTY2(a,b) /*empty*/
+#define ACC_PP_EMPTY3(a,b,c) /*empty*/
+#define ACC_PP_EMPTY4(a,b,c,d) /*empty*/
+#define ACC_PP_EMPTY5(a,b,c,d,e) /*empty*/
+#define ACC_PP_EMPTY6(a,b,c,d,e,f) /*empty*/
+#define ACC_PP_EMPTY7(a,b,c,d,e,f,g) /*empty*/
#if 1
#define ACC_CPP_STRINGIZE(x) #x
#define ACC_CPP_MACRO_EXPAND(x) ACC_CPP_STRINGIZE(x)
@@ -323,12 +380,16 @@
#define ACC_CPP_CONCAT3(a,b,c) a ## b ## c
#define ACC_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d
#define ACC_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
+#define ACC_CPP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f
+#define ACC_CPP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g
#define ACC_CPP_ECONCAT2(a,b) ACC_CPP_CONCAT2(a,b)
#define ACC_CPP_ECONCAT3(a,b,c) ACC_CPP_CONCAT3(a,b,c)
#define ACC_CPP_ECONCAT4(a,b,c,d) ACC_CPP_CONCAT4(a,b,c,d)
#define ACC_CPP_ECONCAT5(a,b,c,d,e) ACC_CPP_CONCAT5(a,b,c,d,e)
+#define ACC_CPP_ECONCAT6(a,b,c,d,e,f) ACC_CPP_CONCAT6(a,b,c,d,e,f)
+#define ACC_CPP_ECONCAT7(a,b,c,d,e,f,g) ACC_CPP_CONCAT7(a,b,c,d,e,f,g)
#endif
-#define __ACC_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o))
+#define __ACC_MASK_GEN(o,b) (((((o) << ((b)-((b)!=0))) - (o)) << 1) + (o)*((b)!=0))
#if 1 && defined(__cplusplus)
# if !defined(__STDC_CONSTANT_MACROS)
# define __STDC_CONSTANT_MACROS 1
@@ -338,9 +399,13 @@
# endif
#endif
#if defined(__cplusplus)
-# define ACC_EXTERN_C extern "C"
+# define ACC_EXTERN_C extern "C"
+# define ACC_EXTERN_C_BEGIN extern "C" {
+# define ACC_EXTERN_C_END }
#else
-# define ACC_EXTERN_C extern
+# define ACC_EXTERN_C extern
+# define ACC_EXTERN_C_BEGIN /*empty*/
+# define ACC_EXTERN_C_END /*empty*/
#endif
#if !defined(__ACC_OS_OVERRIDE)
#if (ACC_OS_FREESTANDING)
@@ -435,18 +500,18 @@
#elif defined(__TOS__) || defined(__atarist__)
# define ACC_OS_TOS 1
# define ACC_INFO_OS "tos"
-#elif defined(macintosh) && !defined(__ppc__)
+#elif defined(macintosh) && !defined(__arm__) && !defined(__i386__) && !defined(__ppc__) && !defined(__x64_64__)
# define ACC_OS_MACCLASSIC 1
# define ACC_INFO_OS "macclassic"
#elif defined(__VMS)
# define ACC_OS_VMS 1
# define ACC_INFO_OS "vms"
-#elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
+#elif (defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)
# define ACC_OS_CONSOLE 1
# define ACC_OS_CONSOLE_PS2 1
# define ACC_INFO_OS "console"
# define ACC_INFO_OS_CONSOLE "ps2"
-#elif (defined(__mips__) && defined(__psp__))
+#elif defined(__mips__) && defined(__psp__)
# define ACC_OS_CONSOLE 1
# define ACC_OS_CONSOLE_PSP 1
# define ACC_INFO_OS "console"
@@ -474,9 +539,18 @@
# elif defined(__linux__) || defined(__linux) || defined(__LINUX__)
# define ACC_OS_POSIX_LINUX 1
# define ACC_INFO_OS_POSIX "linux"
-# elif defined(__APPLE__) || defined(__MACOS__)
-# define ACC_OS_POSIX_MACOSX 1
-# define ACC_INFO_OS_POSIX "macosx"
+# elif defined(__APPLE__) && defined(__MACH__)
+# if ((__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__-0) >= 20000)
+# define ACC_OS_POSIX_DARWIN 1040
+# define ACC_INFO_OS_POSIX "darwin_iphone"
+# elif ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) >= 1040)
+# define ACC_OS_POSIX_DARWIN __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
+# define ACC_INFO_OS_POSIX "darwin"
+# else
+# define ACC_OS_POSIX_DARWIN 1
+# define ACC_INFO_OS_POSIX "darwin"
+# endif
+# define ACC_OS_POSIX_MACOSX ACC_OS_POSIX_DARWIN
# elif defined(__minix__) || defined(__minix)
# define ACC_OS_POSIX_MINIX 1
# define ACC_INFO_OS_POSIX "minix"
@@ -511,18 +585,18 @@
#endif
#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
# if (UINT_MAX != ACC_0xffffL)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
# if (ULONG_MAX != ACC_0xffffffffL)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
#endif
#if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32 || ACC_OS_WIN64)
# if (UINT_MAX != ACC_0xffffffffL)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
# if (ULONG_MAX != ACC_0xffffffffL)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
#endif
#if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
@@ -538,59 +612,81 @@
# define ACC_INFO_CC "sdcc"
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(SDCC)
#elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
-# define ACC_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__)
+# define ACC_CC_PATHSCALE (__PATHCC__ * 0x10000L + (__PATHCC_MINOR__-0) * 0x100 + (__PATHCC_PATCHLEVEL__-0))
# define ACC_INFO_CC "Pathscale C"
# define ACC_INFO_CCVER __PATHSCALE__
-#elif defined(__INTEL_COMPILER)
-# define ACC_CC_INTELC 1
+# if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+# define ACC_CC_PATHSCALE_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
+# endif
+#elif defined(__INTEL_COMPILER) && ((__INTEL_COMPILER-0) > 0)
+# define ACC_CC_INTELC __INTEL_COMPILER
# define ACC_INFO_CC "Intel C"
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__INTEL_COMPILER)
-# if defined(_WIN32) || defined(_WIN64)
-# define ACC_CC_SYNTAX_MSC 1
-# else
-# define ACC_CC_SYNTAX_GNUC 1
+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
+# define ACC_CC_INTELC_MSC _MSC_VER
+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+# define ACC_CC_INTELC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
# endif
#elif defined(__POCC__) && defined(_WIN32)
# define ACC_CC_PELLESC 1
# define ACC_INFO_CC "Pelles C"
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__POCC__)
-#elif defined(__clang__) && defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+#elif defined(__ARMCC_VERSION) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
# if defined(__GNUC_PATCHLEVEL__)
-# define ACC_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
+# define ACC_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
# else
-# define ACC_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
+# define ACC_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
# endif
+# define ACC_CC_ARMCC __ARMCC_VERSION
+# define ACC_INFO_CC "ARM C Compiler"
+# define ACC_INFO_CCVER __VERSION__
+#elif defined(__clang__) && defined(__c2__) && defined(__c2_version__) && defined(_MSC_VER)
+# define ACC_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
+# define ACC_CC_CLANG_C2 _MSC_VER
+# define ACC_CC_CLANG_VENDOR_MICROSOFT 1
+# define ACC_INFO_CC "clang/c2"
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__c2_version__)
+#elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__)
# if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__)
-# define ACC_CC_CLANG_CLANG (__clang_major__ * 0x10000L + __clang_minor__ * 0x100 + __clang_patchlevel__)
+# define ACC_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0))
# else
-# define ACC_CC_CLANG_CLANG 0x020700L
+# define ACC_CC_CLANG 0x010000L
+# endif
+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
+# define ACC_CC_CLANG_MSC _MSC_VER
+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+# define ACC_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
+# endif
+# if defined(__APPLE_CC__)
+# define ACC_CC_CLANG_VENDOR_APPLE 1
+# define ACC_INFO_CC "clang/apple"
+# else
+# define ACC_CC_CLANG_VENDOR_LLVM 1
+# define ACC_INFO_CC "clang"
+# endif
+# if defined(__clang_version__)
+# define ACC_INFO_CCVER __clang_version__
+# else
+# define ACC_INFO_CCVER __VERSION__
# endif
-# define ACC_CC_CLANG ACC_CC_CLANG_GNUC
-# define ACC_INFO_CC "clang"
-# define ACC_INFO_CCVER __VERSION__
#elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
# if defined(__GNUC_PATCHLEVEL__)
-# define ACC_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
+# define ACC_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
# else
-# define ACC_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
+# define ACC_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
# endif
# define ACC_CC_LLVM ACC_CC_LLVM_GNUC
# define ACC_INFO_CC "llvm-gcc"
# define ACC_INFO_CCVER __VERSION__
-#elif defined(__GNUC__) && defined(__VERSION__)
-# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
-# define ACC_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
-# elif defined(__GNUC_MINOR__)
-# define ACC_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
-# else
-# define ACC_CC_GNUC (__GNUC__ * 0x10000L)
-# endif
-# define ACC_INFO_CC "gcc"
-# define ACC_INFO_CCVER __VERSION__
#elif defined(__ACK__) && defined(_ACK)
# define ACC_CC_ACK 1
# define ACC_INFO_CC "Amsterdam Compiler Kit C"
# define ACC_INFO_CCVER "unknown"
+#elif defined(__ARMCC_VERSION) && !defined(__GNUC__)
+# define ACC_CC_ARMCC __ARMCC_VERSION
+# define ACC_CC_ARMCC_ARMCC __ARMCC_VERSION
+# define ACC_INFO_CC "ARM C Compiler"
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__ARMCC_VERSION)
#elif defined(__AZTEC_C__)
# define ACC_CC_AZTECC 1
# define ACC_INFO_CC "Aztec C"
@@ -615,10 +711,23 @@
# define ACC_CC_DECC 1
# define ACC_INFO_CC "DEC C"
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DECC)
+#elif (defined(__ghs) || defined(__ghs__)) && defined(__GHS_VERSION_NUMBER) && ((__GHS_VERSION_NUMBER-0) > 0)
+# define ACC_CC_GHS 1
+# define ACC_INFO_CC "Green Hills C"
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__GHS_VERSION_NUMBER)
+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0)
+# define ACC_CC_GHS_MSC _MSC_VER
+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__)
+# define ACC_CC_GHS_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
+# endif
#elif defined(__HIGHC__)
# define ACC_CC_HIGHC 1
# define ACC_INFO_CC "MetaWare High C"
# define ACC_INFO_CCVER "unknown"
+#elif defined(__HP_aCC) && ((__HP_aCC-0) > 0)
+# define ACC_CC_HPACC __HP_aCC
+# define ACC_INFO_CC "HP aCC"
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__HP_aCC)
#elif defined(__IAR_SYSTEMS_ICC__)
# define ACC_CC_IARC 1
# define ACC_INFO_CC "IAR C"
@@ -627,10 +736,14 @@
# else
# define ACC_INFO_CCVER "unknown"
# endif
-#elif defined(__IBMC__)
-# define ACC_CC_IBMC 1
+#elif defined(__IBMC__) && ((__IBMC__-0) > 0)
+# define ACC_CC_IBMC __IBMC__
# define ACC_INFO_CC "IBM C"
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMC__)
+#elif defined(__IBMCPP__) && ((__IBMCPP__-0) > 0)
+# define ACC_CC_IBMC __IBMCPP__
+# define ACC_INFO_CC "IBM C"
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMCPP__)
#elif defined(__KEIL__) && defined(__C166__)
# define ACC_CC_KEILC 1
# define ACC_INFO_CC "Keil C"
@@ -647,16 +760,8 @@
# else
# define ACC_INFO_CCVER "unknown"
# endif
-#elif defined(_MSC_VER)
-# define ACC_CC_MSC 1
-# define ACC_INFO_CC "Microsoft C"
-# if defined(_MSC_FULL_VER)
-# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER) "." ACC_PP_MACRO_EXPAND(_MSC_FULL_VER)
-# else
-# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER)
-# endif
-#elif defined(__MWERKS__)
-# define ACC_CC_MWERKS 1
+#elif defined(__MWERKS__) && ((__MWERKS__-0) > 0)
+# define ACC_CC_MWERKS __MWERKS__
# define ACC_INFO_CC "Metrowerks C"
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__MWERKS__)
#elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
@@ -667,6 +772,15 @@
# define ACC_CC_PACIFICC 1
# define ACC_INFO_CC "Pacific C"
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PACIFIC__)
+#elif defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define ACC_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100 + (__PGIC_PATCHLEVEL__-0))
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PGIC__) "." ACC_PP_MACRO_EXPAND(__PGIC_MINOR__) "." ACC_PP_MACRO_EXPAND(__PGIC_PATCHLEVEL__)
+# else
+# define ACC_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100)
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PGIC__) "." ACC_PP_MACRO_EXPAND(__PGIC_MINOR__) ".0"
+# endif
+# define ACC_INFO_CC "Portland Group PGI C"
#elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
# define ACC_CC_PGI 1
# define ACC_INFO_CC "Portland Group PGI C"
@@ -681,7 +795,7 @@
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SC__)
#elif defined(__SUNPRO_C)
# define ACC_INFO_CC "SunPro C"
-# if ((__SUNPRO_C)+0 > 0)
+# if ((__SUNPRO_C-0) > 0)
# define ACC_CC_SUNPROC __SUNPRO_C
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_C)
# else
@@ -690,7 +804,7 @@
# endif
#elif defined(__SUNPRO_CC)
# define ACC_INFO_CC "SunPro C"
-# if ((__SUNPRO_CC)+0 > 0)
+# if ((__SUNPRO_CC-0) > 0)
# define ACC_CC_SUNPROC __SUNPRO_CC
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_CC)
# else
@@ -716,16 +830,46 @@
#elif defined(__ZTC__)
# define ACC_CC_ZORTECHC 1
# define ACC_INFO_CC "Zortech C"
-# if (__ZTC__ == 0x310)
+# if ((__ZTC__-0) == 0x310)
# define ACC_INFO_CCVER "0x310"
# else
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__ZTC__)
# endif
+#elif defined(__GNUC__) && defined(__VERSION__)
+# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
+# define ACC_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0))
+# elif defined(__GNUC_MINOR__)
+# define ACC_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100)
+# else
+# define ACC_CC_GNUC (__GNUC__ * 0x10000L)
+# endif
+# define ACC_INFO_CC "gcc"
+# define ACC_INFO_CCVER __VERSION__
+#elif defined(_MSC_VER) && ((_MSC_VER-0) > 0)
+# define ACC_CC_MSC _MSC_VER
+# define ACC_INFO_CC "Microsoft C"
+# if defined(_MSC_FULL_VER)
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER) "." ACC_PP_MACRO_EXPAND(_MSC_FULL_VER)
+# else
+# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER)
+# endif
#else
# define ACC_CC_UNKNOWN 1
# define ACC_INFO_CC "unknown"
# define ACC_INFO_CCVER "unknown"
#endif
+#if (ACC_CC_GNUC) && defined(__OPEN64__)
+# if defined(__OPENCC__) && defined(__OPENCC_MINOR__) && defined(__OPENCC_PATCHLEVEL__)
+# define ACC_CC_OPEN64 (__OPENCC__ * 0x10000L + (__OPENCC_MINOR__-0) * 0x100 + (__OPENCC_PATCHLEVEL__-0))
+# define ACC_CC_OPEN64_GNUC ACC_CC_GNUC
+# endif
+#endif
+#if (ACC_CC_GNUC) && defined(__PCC__)
+# if defined(__PCC__) && defined(__PCC_MINOR__) && defined(__PCC_MINORMINOR__)
+# define ACC_CC_PCC (__PCC__ * 0x10000L + (__PCC_MINOR__-0) * 0x100 + (__PCC_MINORMINOR__-0))
+# define ACC_CC_PCC_GNUC ACC_CC_GNUC
+# endif
+#endif
#if 0 && (ACC_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
# error "ACC_CC_MSC: _MSC_FULL_VER is not defined"
#endif
@@ -743,8 +887,10 @@
# define ACC_INFO_ARCH "generic"
#elif (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
# define ACC_ARCH_I086 1
-# define ACC_ARCH_IA16 1
# define ACC_INFO_ARCH "i086"
+#elif defined(__aarch64__) || defined(_M_ARM64)
+# define ACC_ARCH_ARM64 1
+# define ACC_INFO_ARCH "arm64"
#elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
# define ACC_ARCH_ALPHA 1
# define ACC_INFO_ARCH "alpha"
@@ -754,22 +900,11 @@
#elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
# define ACC_ARCH_AMD64 1
# define ACC_INFO_ARCH "amd64"
-#elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
+#elif defined(__arm__) || defined(_M_ARM)
# define ACC_ARCH_ARM 1
-# define ACC_ARCH_ARM_THUMB 1
-# define ACC_INFO_ARCH "arm_thumb"
+# define ACC_INFO_ARCH "arm"
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
# define ACC_ARCH_ARM 1
-# if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1)
-# define ACC_ARCH_ARM_THUMB 1
-# define ACC_INFO_ARCH "arm_thumb"
-# elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2)
-# define ACC_INFO_ARCH "arm"
-# else
-# define ACC_INFO_ARCH "arm"
-# endif
-#elif defined(__arm__) || defined(_M_ARM)
-# define ACC_ARCH_ARM 1
# define ACC_INFO_ARCH "arm"
#elif (UINT_MAX <= ACC_0xffffL) && defined(__AVR__)
# define ACC_ARCH_AVR 1
@@ -831,6 +966,9 @@
#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC8051__)
# define ACC_ARCH_MCS51 1
# define ACC_INFO_ARCH "mcs51"
+#elif defined(__microblaze__) || defined(__MICROBLAZE__)
+# define ACC_ARCH_MICROBLAZE 1
+# define ACC_INFO_ARCH "microblaze"
#elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
# define ACC_ARCH_MIPS 1
# define ACC_INFO_ARCH "mips"
@@ -843,6 +981,15 @@
#elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
# define ACC_ARCH_POWERPC 1
# define ACC_INFO_ARCH "powerpc"
+#elif defined(__powerpc64__) || defined(__powerpc64) || defined(__ppc64__) || defined(__PPC64__)
+# define ACC_ARCH_POWERPC 1
+# define ACC_INFO_ARCH "powerpc"
+#elif defined(__powerpc64le__) || defined(__powerpc64le) || defined(__ppc64le__) || defined(__PPC64LE__)
+# define ACC_ARCH_POWERPC 1
+# define ACC_INFO_ARCH "powerpc"
+#elif defined(__riscv)
+# define ACC_ARCH_RISCV 1
+# define ACC_INFO_ARCH "riscv"
#elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
# define ACC_ARCH_S390 1
# define ACC_INFO_ARCH "s390"
@@ -877,57 +1024,171 @@
# define ACC_INFO_ARCH "unknown"
#endif
#endif
+#if !defined(ACC_ARCH_ARM_THUMB2)
+#if (ACC_ARCH_ARM)
+# if defined(__thumb__) || defined(__thumb) || defined(_M_THUMB)
+# if defined(__thumb2__)
+# define ACC_ARCH_ARM_THUMB2 1
+# elif 1 && defined(__TARGET_ARCH_THUMB) && ((__TARGET_ARCH_THUMB)+0 >= 4)
+# define ACC_ARCH_ARM_THUMB2 1
+# elif 1 && defined(_MSC_VER) && defined(_M_THUMB) && ((_M_THUMB)+0 >= 7)
+# define ACC_ARCH_ARM_THUMB2 1
+# endif
+# endif
+#endif
+#endif
+#if (ACC_ARCH_ARM_THUMB2)
+# undef ACC_INFO_ARCH
+# define ACC_INFO_ARCH "arm_thumb2"
+#endif
#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_DOS32 || ACC_OS_OS2)
# error "FIXME - missing define for CPU architecture"
#endif
#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN32)
-# error "FIXME - missing WIN32 define for CPU architecture"
+# error "FIXME - missing ACC_OS_WIN32 define for CPU architecture"
#endif
#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN64)
-# error "FIXME - missing WIN64 define for CPU architecture"
+# error "FIXME - missing ACC_OS_WIN64 define for CPU architecture"
#endif
#if (ACC_OS_OS216 || ACC_OS_WIN16)
# define ACC_ARCH_I086PM 1
-# define ACC_ARCH_IA16PM 1
#elif 1 && (ACC_OS_DOS16 && defined(BLX286))
# define ACC_ARCH_I086PM 1
-# define ACC_ARCH_IA16PM 1
#elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
# define ACC_ARCH_I086PM 1
-# define ACC_ARCH_IA16PM 1
#elif 1 && (ACC_OS_DOS16 && ACC_CC_BORLANDC && defined(__DPMI16__))
# define ACC_ARCH_I086PM 1
-# define ACC_ARCH_IA16PM 1
#endif
-#if (ACC_ARCH_ARM_THUMB) && !(ACC_ARCH_ARM)
-# error "this should not happen"
+#if (ACC_ARCH_AMD64 && !ACC_ARCH_X64)
+# define ACC_ARCH_X64 1
+#elif (!ACC_ARCH_AMD64 && ACC_ARCH_X64) && defined(__ACC_ARCH_OVERRIDE)
+# define ACC_ARCH_AMD64 1
+#endif
+#if (ACC_ARCH_ARM64 && !ACC_ARCH_AARCH64)
+# define ACC_ARCH_AARCH64 1
+#elif (!ACC_ARCH_ARM64 && ACC_ARCH_AARCH64) && defined(__ACC_ARCH_OVERRIDE)
+# define ACC_ARCH_ARM64 1
+#endif
+#if (ACC_ARCH_I386 && !ACC_ARCH_X86)
+# define ACC_ARCH_X86 1
+#elif (!ACC_ARCH_I386 && ACC_ARCH_X86) && defined(__ACC_ARCH_OVERRIDE)
+# define ACC_ARCH_I386 1
+#endif
+#if (ACC_ARCH_AMD64 && !ACC_ARCH_X64) || (!ACC_ARCH_AMD64 && ACC_ARCH_X64)
+# error "unexpected configuration - check your compiler defines"
#endif
-#if (ACC_ARCH_I086PM) && !(ACC_ARCH_I086)
-# error "this should not happen"
+#if (ACC_ARCH_ARM64 && !ACC_ARCH_AARCH64) || (!ACC_ARCH_ARM64 && ACC_ARCH_AARCH64)
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_ARCH_I386 && !ACC_ARCH_X86) || (!ACC_ARCH_I386 && ACC_ARCH_X86)
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_ARCH_ARM_THUMB1 && !ACC_ARCH_ARM)
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_ARCH_ARM_THUMB2 && !ACC_ARCH_ARM)
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_ARCH_ARM_THUMB1 && ACC_ARCH_ARM_THUMB2)
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_ARCH_I086PM && !ACC_ARCH_I086)
+# error "unexpected configuration - check your compiler defines"
#endif
#if (ACC_ARCH_I086)
# if (UINT_MAX != ACC_0xffffL)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
# if (ULONG_MAX != ACC_0xffffffffL)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
#endif
#if (ACC_ARCH_I386)
# if (UINT_MAX != ACC_0xffffL) && defined(__i386_int16__)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
# if (UINT_MAX != ACC_0xffffffffL) && !defined(__i386_int16__)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
# if (ULONG_MAX != ACC_0xffffffffL)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
+# endif
+#endif
+#if (ACC_ARCH_AMD64 || ACC_ARCH_I386)
+# if !defined(ACC_TARGET_FEATURE_SSE2)
+# if defined(__SSE2__)
+# define ACC_TARGET_FEATURE_SSE2 1
+# elif defined(_MSC_VER) && (defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2))
+# define ACC_TARGET_FEATURE_SSE2 1
+# elif (ACC_CC_INTELC_MSC || ACC_CC_MSC) && defined(_M_AMD64)
+# define ACC_TARGET_FEATURE_SSE2 1
+# endif
+# endif
+# if !defined(ACC_TARGET_FEATURE_SSSE3)
+# if (ACC_TARGET_FEATURE_SSE2)
+# if defined(__SSSE3__)
+# define ACC_TARGET_FEATURE_SSSE3 1
+# elif defined(_MSC_VER) && defined(__AVX__)
+# define ACC_TARGET_FEATURE_SSSE3 1
+# endif
+# endif
+# endif
+# if !defined(ACC_TARGET_FEATURE_SSE4_2)
+# if (ACC_TARGET_FEATURE_SSSE3)
+# if defined(__SSE4_2__)
+# define ACC_TARGET_FEATURE_SSE4_2 1
+# endif
+# endif
+# endif
+# if !defined(ACC_TARGET_FEATURE_AVX)
+# if (ACC_TARGET_FEATURE_SSSE3)
+# if defined(__AVX__)
+# define ACC_TARGET_FEATURE_AVX 1
+# endif
+# endif
+# endif
+# if !defined(ACC_TARGET_FEATURE_AVX2)
+# if (ACC_TARGET_FEATURE_AVX)
+# if defined(__AVX2__)
+# define ACC_TARGET_FEATURE_AVX2 1
+# endif
+# endif
# endif
#endif
-#if !defined(__ACC_MM_OVERRIDE)
+#if (ACC_TARGET_FEATURE_SSSE3 && !(ACC_TARGET_FEATURE_SSE2))
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_TARGET_FEATURE_SSE4_2 && !(ACC_TARGET_FEATURE_SSSE3))
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_TARGET_FEATURE_AVX && !(ACC_TARGET_FEATURE_SSSE3))
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_TARGET_FEATURE_AVX2 && !(ACC_TARGET_FEATURE_AVX))
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if (ACC_ARCH_ARM)
+# if !defined(ACC_TARGET_FEATURE_NEON)
+# if defined(__ARM_NEON) && ((__ARM_NEON)+0)
+# define ACC_TARGET_FEATURE_NEON 1
+# elif 1 && defined(__ARM_NEON__) && ((__ARM_NEON__)+0)
+# define ACC_TARGET_FEATURE_NEON 1
+# elif 1 && defined(__TARGET_FEATURE_NEON) && ((__TARGET_FEATURE_NEON)+0)
+# define ACC_TARGET_FEATURE_NEON 1
+# endif
+# endif
+#elif (ACC_ARCH_ARM64)
+# if !defined(ACC_TARGET_FEATURE_NEON)
+# if 1
+# define ACC_TARGET_FEATURE_NEON 1
+# endif
+# endif
+#endif
+#if 0
+#elif !defined(__ACC_MM_OVERRIDE)
#if (ACC_ARCH_I086)
#if (UINT_MAX != ACC_0xffffL)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
#endif
#if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
# define ACC_MM_TINY 1
@@ -954,7 +1215,7 @@
#elif (ACC_CC_ZORTECHC && defined(__VCM__))
# define ACC_MM_LARGE 1
#else
-# error "unknown memory model"
+# error "unknown ACC_ARCH_I086 memory model"
#endif
#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
#define ACC_HAVE_MM_HUGE_PTR 1
@@ -977,13 +1238,13 @@
#endif
#if (ACC_ARCH_I086PM) && !(ACC_HAVE_MM_HUGE_PTR)
# if (ACC_OS_DOS16)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# elif (ACC_CC_ZORTECHC)
# else
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
# endif
#endif
-#ifdef __cplusplus
+#if defined(__cplusplus)
extern "C" {
#endif
#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
@@ -1006,13 +1267,13 @@ extern "C" {
#else
# error "FIXME - implement ACC_MM_AHSHIFT"
#endif
-#ifdef __cplusplus
+#if defined(__cplusplus)
}
#endif
#endif
#elif (ACC_ARCH_C166)
#if !defined(__MODEL__)
-# error "FIXME - C166 __MODEL__"
+# error "FIXME - ACC_ARCH_C166 __MODEL__"
#elif ((__MODEL__) == 0)
# define ACC_MM_SMALL 1
#elif ((__MODEL__) == 1)
@@ -1026,11 +1287,11 @@ extern "C" {
#elif ((__MODEL__) == 5)
# define ACC_MM_XSMALL 1
#else
-# error "FIXME - C166 __MODEL__"
+# error "FIXME - ACC_ARCH_C166 __MODEL__"
#endif
#elif (ACC_ARCH_MCS251)
#if !defined(__MODEL__)
-# error "FIXME - MCS251 __MODEL__"
+# error "FIXME - ACC_ARCH_MCS251 __MODEL__"
#elif ((__MODEL__) == 0)
# define ACC_MM_SMALL 1
#elif ((__MODEL__) == 2)
@@ -1042,11 +1303,11 @@ extern "C" {
#elif ((__MODEL__) == 5)
# define ACC_MM_XSMALL 1
#else
-# error "FIXME - MCS251 __MODEL__"
+# error "FIXME - ACC_ARCH_MCS251 __MODEL__"
#endif
#elif (ACC_ARCH_MCS51)
#if !defined(__MODEL__)
-# error "FIXME - MCS51 __MODEL__"
+# error "FIXME - ACC_ARCH_MCS51 __MODEL__"
#elif ((__MODEL__) == 1)
# define ACC_MM_SMALL 1
#elif ((__MODEL__) == 2)
@@ -1058,7 +1319,7 @@ extern "C" {
#elif ((__MODEL__) == 5)
# define ACC_MM_XSMALL 1
#else
-# error "FIXME - MCS51 __MODEL__"
+# error "FIXME - ACC_ARCH_MCS51 __MODEL__"
#endif
#elif (ACC_ARCH_CRAY_PVP)
# define ACC_MM_PVP 1
@@ -1085,35 +1346,887 @@ extern "C" {
# error "unknown memory model"
#endif
#endif
+#if !defined(__acc_gnuc_extension__)
+#if (ACC_CC_GNUC >= 0x020800ul)
+# define __acc_gnuc_extension__ __extension__
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_gnuc_extension__ __extension__
+#elif (ACC_CC_IBMC >= 600)
+# define __acc_gnuc_extension__ __extension__
+#endif
+#endif
+#if !defined(__acc_gnuc_extension__)
+# define __acc_gnuc_extension__ /*empty*/
+#endif
+#if !defined(acc_has_builtin)
+#if (ACC_CC_CLANG) && defined(__has_builtin)
+# define acc_has_builtin __has_builtin
+#endif
+#endif
+#if !defined(acc_has_builtin)
+# define acc_has_builtin(x) 0
+#endif
+#if !defined(acc_has_attribute)
+#if (ACC_CC_CLANG) && defined(__has_attribute)
+# define acc_has_attribute __has_attribute
+#endif
+#endif
+#if !defined(acc_has_attribute)
+# define acc_has_attribute(x) 0
+#endif
+#if !defined(acc_has_declspec_attribute)
+#if (ACC_CC_CLANG) && defined(__has_declspec_attribute)
+# define acc_has_declspec_attribute __has_declspec_attribute
+#endif
+#endif
+#if !defined(acc_has_declspec_attribute)
+# define acc_has_declspec_attribute(x) 0
+#endif
+#if !defined(acc_has_feature)
+#if (ACC_CC_CLANG) && defined(__has_feature)
+# define acc_has_feature __has_feature
+#endif
+#endif
+#if !defined(acc_has_feature)
+# define acc_has_feature(x) 0
+#endif
+#if !defined(acc_has_extension)
+#if (ACC_CC_CLANG) && defined(__has_extension)
+# define acc_has_extension __has_extension
+#elif (ACC_CC_CLANG) && defined(__has_feature)
+# define acc_has_extension __has_feature
+#endif
+#endif
+#if !defined(acc_has_extension)
+# define acc_has_extension(x) 0
+#endif
+#if !defined(ACC_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0
+# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul))
+# define ACC_CFG_USE_NEW_STYLE_CASTS 0
+# elif (ACC_CC_INTELC && (__INTEL_COMPILER < 1200))
+# define ACC_CFG_USE_NEW_STYLE_CASTS 0
+# else
+# define ACC_CFG_USE_NEW_STYLE_CASTS 1
+# endif
+#endif
+#if !defined(ACC_CFG_USE_NEW_STYLE_CASTS)
+# define ACC_CFG_USE_NEW_STYLE_CASTS 0
+#endif
+#if !defined(__cplusplus)
+# if defined(ACC_CFG_USE_NEW_STYLE_CASTS)
+# undef ACC_CFG_USE_NEW_STYLE_CASTS
+# endif
+# define ACC_CFG_USE_NEW_STYLE_CASTS 0
+#endif
+#if !defined(ACC_REINTERPRET_CAST)
+# if (ACC_CFG_USE_NEW_STYLE_CASTS)
+# define ACC_REINTERPRET_CAST(t,e) (reinterpret_cast<t> (e))
+# endif
+#endif
+#if !defined(ACC_REINTERPRET_CAST)
+# define ACC_REINTERPRET_CAST(t,e) ((t) (e))
+#endif
+#if !defined(ACC_STATIC_CAST)
+# if (ACC_CFG_USE_NEW_STYLE_CASTS)
+# define ACC_STATIC_CAST(t,e) (static_cast<t> (e))
+# endif
+#endif
+#if !defined(ACC_STATIC_CAST)
+# define ACC_STATIC_CAST(t,e) ((t) (e))
+#endif
+#if !defined(ACC_STATIC_CAST2)
+# define ACC_STATIC_CAST2(t1,t2,e) ACC_STATIC_CAST(t1, ACC_STATIC_CAST(t2, e))
+#endif
+#if !defined(ACC_UNCONST_CAST)
+# if (ACC_CFG_USE_NEW_STYLE_CASTS)
+# define ACC_UNCONST_CAST(t,e) (const_cast<t> (e))
+# elif (ACC_HAVE_MM_HUGE_PTR)
+# define ACC_UNCONST_CAST(t,e) ((t) (e))
+# elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((acc_uintptr_t) ((const void *) (e)))))
+# endif
+#endif
+#if !defined(ACC_UNCONST_CAST)
+# define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((const void *) (e))))
+#endif
+#if !defined(ACC_UNCONST_VOLATILE_CAST)
+# if (ACC_CFG_USE_NEW_STYLE_CASTS)
+# define ACC_UNCONST_VOLATILE_CAST(t,e) (const_cast<t> (e))
+# elif (ACC_HAVE_MM_HUGE_PTR)
+# define ACC_UNCONST_VOLATILE_CAST(t,e) ((t) (e))
+# elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define ACC_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((acc_uintptr_t) ((volatile const void *) (e)))))
+# endif
+#endif
+#if !defined(ACC_UNCONST_VOLATILE_CAST)
+# define ACC_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((volatile const void *) (e))))
+#endif
+#if !defined(ACC_UNVOLATILE_CAST)
+# if (ACC_CFG_USE_NEW_STYLE_CASTS)
+# define ACC_UNVOLATILE_CAST(t,e) (const_cast<t> (e))
+# elif (ACC_HAVE_MM_HUGE_PTR)
+# define ACC_UNVOLATILE_CAST(t,e) ((t) (e))
+# elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define ACC_UNVOLATILE_CAST(t,e) ((t) ((void *) ((acc_uintptr_t) ((volatile void *) (e)))))
+# endif
+#endif
+#if !defined(ACC_UNVOLATILE_CAST)
+# define ACC_UNVOLATILE_CAST(t,e) ((t) ((void *) ((volatile void *) (e))))
+#endif
+#if !defined(ACC_UNVOLATILE_CONST_CAST)
+# if (ACC_CFG_USE_NEW_STYLE_CASTS)
+# define ACC_UNVOLATILE_CONST_CAST(t,e) (const_cast<t> (e))
+# elif (ACC_HAVE_MM_HUGE_PTR)
+# define ACC_UNVOLATILE_CONST_CAST(t,e) ((t) (e))
+# elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define ACC_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((acc_uintptr_t) ((volatile const void *) (e)))))
+# endif
+#endif
+#if !defined(ACC_UNVOLATILE_CONST_CAST)
+# define ACC_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((volatile const void *) (e))))
+#endif
+#if !defined(ACC_PCAST)
+# if (ACC_HAVE_MM_HUGE_PTR)
+# define ACC_PCAST(t,e) ((t) (e))
+# endif
+#endif
+#if !defined(ACC_PCAST)
+# define ACC_PCAST(t,e) ACC_STATIC_CAST(t, ACC_STATIC_CAST(void *, e))
+#endif
+#if !defined(ACC_CCAST)
+# if (ACC_HAVE_MM_HUGE_PTR)
+# define ACC_CCAST(t,e) ((t) (e))
+# endif
+#endif
+#if !defined(ACC_CCAST)
+# define ACC_CCAST(t,e) ACC_STATIC_CAST(t, ACC_STATIC_CAST(const void *, e))
+#endif
+#if !defined(ACC_ICONV)
+# define ACC_ICONV(t,e) ACC_STATIC_CAST(t, e)
+#endif
+#if !defined(ACC_ICAST)
+# define ACC_ICAST(t,e) ACC_STATIC_CAST(t, e)
+#endif
+#if !defined(ACC_ITRUNC)
+# define ACC_ITRUNC(t,e) ACC_STATIC_CAST(t, e)
+#endif
+#if !defined(__acc_cte)
+# if (ACC_CC_MSC || ACC_CC_WATCOMC)
+# define __acc_cte(e) ((void)0,(e))
+# elif 1
+# define __acc_cte(e) ((void)0,(e))
+# endif
+#endif
+#if !defined(__acc_cte)
+# define __acc_cte(e) (e)
+#endif
+#if !defined(ACC_BLOCK_BEGIN)
+# define ACC_BLOCK_BEGIN do {
+# define ACC_BLOCK_END } while __acc_cte(0)
+#endif
+#if !defined(ACC_UNUSED)
+# if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
+# define ACC_UNUSED(var) ((void) &var)
+# elif (ACC_CC_BORLANDC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PELLESC || ACC_CC_TURBOC)
+# define ACC_UNUSED(var) if (&var) ; else
+# elif (ACC_CC_CLANG && (ACC_CC_CLANG >= 0x030200ul))
+# define ACC_UNUSED(var) ((void) &var)
+# elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define ACC_UNUSED(var) ((void) var)
+# elif (ACC_CC_MSC && (_MSC_VER < 900))
+# define ACC_UNUSED(var) if (&var) ; else
+# elif (ACC_CC_KEILC)
+# define ACC_UNUSED(var) {extern int acc_unused__[1-2*!(sizeof(var)>0)]; (void)acc_unused__;}
+# elif (ACC_CC_PACIFICC)
+# define ACC_UNUSED(var) ((void) sizeof(var))
+# elif (ACC_CC_WATCOMC) && defined(__cplusplus)
+# define ACC_UNUSED(var) ((void) var)
+# else
+# define ACC_UNUSED(var) ((void) &var)
+# endif
+#endif
+#if !defined(ACC_UNUSED_RESULT)
+# define ACC_UNUSED_RESULT(var) ACC_UNUSED(var)
+#endif
+#if !defined(ACC_UNUSED_FUNC)
+# if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
+# define ACC_UNUSED_FUNC(func) ((void) func)
+# elif (ACC_CC_BORLANDC || ACC_CC_NDPC || ACC_CC_TURBOC)
+# define ACC_UNUSED_FUNC(func) if (func) ; else
+# elif (ACC_CC_CLANG || ACC_CC_LLVM)
+# define ACC_UNUSED_FUNC(func) ((void) &func)
+# elif (ACC_CC_MSC && (_MSC_VER < 900))
+# define ACC_UNUSED_FUNC(func) if (func) ; else
+# elif (ACC_CC_MSC)
+# define ACC_UNUSED_FUNC(func) ((void) &func)
+# elif (ACC_CC_KEILC || ACC_CC_PELLESC)
+# define ACC_UNUSED_FUNC(func) {extern int acc_unused__[1-2*!(sizeof((int)func)>0)]; (void)acc_unused__;}
+# else
+# define ACC_UNUSED_FUNC(func) ((void) func)
+# endif
+#endif
+#if !defined(ACC_UNUSED_LABEL)
+# if (ACC_CC_CLANG >= 0x020800ul)
+# define ACC_UNUSED_LABEL(l) (__acc_gnuc_extension__ ((void) ((const void *) &&l)))
+# elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_INTELC || ACC_CC_WATCOMC)
+# define ACC_UNUSED_LABEL(l) if __acc_cte(0) goto l
+# else
+# define ACC_UNUSED_LABEL(l) switch (0) case 1:goto l
+# endif
+#endif
+#if !defined(ACC_DEFINE_UNINITIALIZED_VAR)
+# if 0
+# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var
+# elif 0 && (ACC_CC_GNUC)
+# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var
+# else
+# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init
+# endif
+#endif
+#if !defined(__acc_inline)
+#if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
+#elif defined(__cplusplus)
+# define __acc_inline inline
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L)
+# define __acc_inline inline
+#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
+# define __acc_inline __inline
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
+# define __acc_inline __inline__
+#elif (ACC_CC_DMC)
+# define __acc_inline __inline
+#elif (ACC_CC_GHS)
+# define __acc_inline __inline__
+#elif (ACC_CC_IBMC >= 600)
+# define __acc_inline __inline__
+#elif (ACC_CC_INTELC)
+# define __acc_inline __inline
+#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
+# define __acc_inline __inline
+#elif (ACC_CC_MSC && (_MSC_VER >= 900))
+# define __acc_inline __inline
+#elif (ACC_CC_SUNPROC >= 0x5100)
+# define __acc_inline __inline__
+#endif
+#endif
+#if defined(__acc_inline)
+# ifndef __acc_HAVE_inline
+# define __acc_HAVE_inline 1
+# endif
+#else
+# define __acc_inline /*empty*/
+#endif
+#if !defined(__acc_forceinline)
+#if (ACC_CC_GNUC >= 0x030200ul)
+# define __acc_forceinline __inline__ __attribute__((__always_inline__))
+#elif (ACC_CC_IBMC >= 700)
+# define __acc_forceinline __inline__ __attribute__((__always_inline__))
+#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
+# define __acc_forceinline __forceinline
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
+# define __acc_forceinline __inline__ __attribute__((__always_inline__))
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_forceinline __inline__ __attribute__((__always_inline__))
+#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
+# define __acc_forceinline __forceinline
+#elif (ACC_CC_PGI >= 0x0d0a00ul)
+# define __acc_forceinline __inline__ __attribute__((__always_inline__))
+#elif (ACC_CC_SUNPROC >= 0x5100)
+# define __acc_forceinline __inline__ __attribute__((__always_inline__))
+#endif
+#endif
+#if defined(__acc_forceinline)
+# ifndef __acc_HAVE_forceinline
+# define __acc_HAVE_forceinline 1
+# endif
+#else
+# define __acc_forceinline __acc_inline
+#endif
+#if !defined(__acc_noinline)
+#if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
+# define __acc_noinline __attribute__((__noinline__,__used__))
+#elif (ACC_CC_GNUC >= 0x030200ul)
+# define __acc_noinline __attribute__((__noinline__))
+#elif (ACC_CC_IBMC >= 700)
+# define __acc_noinline __attribute__((__noinline__))
+#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 600))
+# define __acc_noinline __declspec(noinline)
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
+# define __acc_noinline __attribute__((__noinline__))
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_noinline __attribute__((__noinline__))
+#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
+# define __acc_noinline __declspec(noinline)
+#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
+# if defined(__cplusplus)
+# else
+# define __acc_noinline __declspec(noinline)
+# endif
+#elif (ACC_CC_PGI >= 0x0d0a00ul)
+# define __acc_noinline __attribute__((__noinline__))
+#elif (ACC_CC_SUNPROC >= 0x5100)
+# define __acc_noinline __attribute__((__noinline__))
+#endif
+#endif
+#if defined(__acc_noinline)
+# ifndef __acc_HAVE_noinline
+# define __acc_HAVE_noinline 1
+# endif
+#else
+# define __acc_noinline /*empty*/
+#endif
+#if (__acc_HAVE_forceinline || __acc_HAVE_noinline) && !(__acc_HAVE_inline)
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if !defined(__acc_static_inline)
+#if (ACC_CC_IBMC)
+# define __acc_static_inline __acc_gnuc_extension__ static __acc_inline
+#endif
+#endif
+#if !defined(__acc_static_inline)
+# define __acc_static_inline static __acc_inline
+#endif
+#if !defined(__acc_static_forceinline)
+#if (ACC_CC_IBMC)
+# define __acc_static_forceinline __acc_gnuc_extension__ static __acc_forceinline
+#endif
+#endif
+#if !defined(__acc_static_forceinline)
+# define __acc_static_forceinline static __acc_forceinline
+#endif
+#if !defined(__acc_static_noinline)
+#if (ACC_CC_IBMC)
+# define __acc_static_noinline __acc_gnuc_extension__ static __acc_noinline
+#endif
+#endif
+#if !defined(__acc_static_noinline)
+# define __acc_static_noinline static __acc_noinline
+#endif
+#if !defined(__acc_c99_extern_inline)
+#if defined(__GNUC_GNU_INLINE__)
+# define __acc_c99_extern_inline __acc_inline
+#elif defined(__GNUC_STDC_INLINE__)
+# define __acc_c99_extern_inline extern __acc_inline
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L)
+# define __acc_c99_extern_inline extern __acc_inline
+#endif
+#if !defined(__acc_c99_extern_inline) && (__acc_HAVE_inline)
+# define __acc_c99_extern_inline __acc_inline
+#endif
+#endif
+#if defined(__acc_c99_extern_inline)
+# ifndef __acc_HAVE_c99_extern_inline
+# define __acc_HAVE_c99_extern_inline 1
+# endif
+#else
+# define __acc_c99_extern_inline /*empty*/
+#endif
+#if !defined(__acc_may_alias)
+#if (ACC_CC_GNUC >= 0x030400ul)
+# define __acc_may_alias __attribute__((__may_alias__))
+#elif (ACC_CC_CLANG >= 0x020900ul)
+# define __acc_may_alias __attribute__((__may_alias__))
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210)) && 0
+# define __acc_may_alias __attribute__((__may_alias__))
+#elif (ACC_CC_PGI >= 0x0d0a00ul) && 0
+# define __acc_may_alias __attribute__((__may_alias__))
+#endif
+#endif
+#if defined(__acc_may_alias)
+# ifndef __acc_HAVE_may_alias
+# define __acc_HAVE_may_alias 1
+# endif
+#else
+# define __acc_may_alias /*empty*/
+#endif
+#if !defined(__acc_noreturn)
+#if (ACC_CC_GNUC >= 0x020700ul)
+# define __acc_noreturn __attribute__((__noreturn__))
+#elif (ACC_CC_IBMC >= 700)
+# define __acc_noreturn __attribute__((__noreturn__))
+#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
+# define __acc_noreturn __declspec(noreturn)
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
+# define __acc_noreturn __attribute__((__noreturn__))
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_noreturn __attribute__((__noreturn__))
+#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
+# define __acc_noreturn __declspec(noreturn)
+#elif (ACC_CC_PGI >= 0x0d0a00ul)
+# define __acc_noreturn __attribute__((__noreturn__))
+#endif
+#endif
+#if defined(__acc_noreturn)
+# ifndef __acc_HAVE_noreturn
+# define __acc_HAVE_noreturn 1
+# endif
+#else
+# define __acc_noreturn /*empty*/
+#endif
+#if !defined(__acc_nothrow)
+#if (ACC_CC_GNUC >= 0x030300ul)
+# define __acc_nothrow __attribute__((__nothrow__))
+#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus)
+# define __acc_nothrow __declspec(nothrow)
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900))
+# define __acc_nothrow __attribute__((__nothrow__))
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_nothrow __attribute__((__nothrow__))
+#elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
+# define __acc_nothrow __declspec(nothrow)
+#endif
+#endif
+#if defined(__acc_nothrow)
+# ifndef __acc_HAVE_nothrow
+# define __acc_HAVE_nothrow 1
+# endif
+#else
+# define __acc_nothrow /*empty*/
+#endif
+#if !defined(__acc_restrict)
+#if (ACC_CC_GNUC >= 0x030400ul)
+# define __acc_restrict __restrict__
+#elif (ACC_CC_IBMC >= 800) && !defined(__cplusplus)
+# define __acc_restrict __restrict__
+#elif (ACC_CC_IBMC >= 1210)
+# define __acc_restrict __restrict__
+#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 600))
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
+# define __acc_restrict __restrict__
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM)
+# define __acc_restrict __restrict__
+#elif (ACC_CC_MSC && (_MSC_VER >= 1400))
+# define __acc_restrict __restrict
+#elif (ACC_CC_PGI >= 0x0d0a00ul)
+# define __acc_restrict __restrict__
+#endif
+#endif
+#if defined(__acc_restrict)
+# ifndef __acc_HAVE_restrict
+# define __acc_HAVE_restrict 1
+# endif
+#else
+# define __acc_restrict /*empty*/
+#endif
+#if !defined(__acc_alignof)
+#if (ACC_CC_ARMCC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
+# define __acc_alignof(e) __alignof__(e)
+#elif (ACC_CC_GHS) && !defined(__cplusplus)
+# define __acc_alignof(e) __alignof__(e)
+#elif (ACC_CC_IBMC >= 600)
+# define __acc_alignof(e) (__acc_gnuc_extension__ __alignof__(e))
+#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
+# define __acc_alignof(e) __alignof__(e)
+#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
+# define __acc_alignof(e) __alignof(e)
+#elif (ACC_CC_SUNPROC >= 0x5100)
+# define __acc_alignof(e) __alignof__(e)
+#endif
+#endif
+#if defined(__acc_alignof)
+# ifndef __acc_HAVE_alignof
+# define __acc_HAVE_alignof 1
+# endif
+#endif
+#if !defined(__acc_struct_packed)
+#if (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
+#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
+#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
+#elif (ACC_CC_PCC && (ACC_CC_PCC < 0x010100ul))
+#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC < 0x5110)) && !defined(__cplusplus)
+#elif (ACC_CC_GNUC >= 0x030400ul) && !(ACC_CC_PCC_GNUC) && (ACC_ARCH_AMD64 || ACC_ARCH_I386)
+# define __acc_struct_packed(s) struct s {
+# define __acc_struct_packed_end() } __attribute__((__gcc_struct__,__packed__));
+# define __acc_struct_packed_ma_end() } __acc_may_alias __attribute__((__gcc_struct__,__packed__));
+#elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || (ACC_CC_PGI >= 0x0d0a00ul) || (ACC_CC_SUNPROC >= 0x5100))
+# define __acc_struct_packed(s) struct s {
+# define __acc_struct_packed_end() } __attribute__((__packed__));
+# define __acc_struct_packed_ma_end() } __acc_may_alias __attribute__((__packed__));
+#elif (ACC_CC_IBMC >= 700)
+# define __acc_struct_packed(s) __acc_gnuc_extension__ struct s {
+# define __acc_struct_packed_end() } __attribute__((__packed__));
+# define __acc_struct_packed_ma_end() } __acc_may_alias __attribute__((__packed__));
+#elif (ACC_CC_INTELC_MSC) || (ACC_CC_MSC && (_MSC_VER >= 1300))
+# define __acc_struct_packed(s) __pragma(pack(push,1)) struct s {
+# define __acc_struct_packed_end() } __pragma(pack(pop));
+#elif (ACC_CC_WATCOMC && (__WATCOMC__ >= 900))
+# define __acc_struct_packed(s) _Packed struct s {
+# define __acc_struct_packed_end() };
+#endif
+#endif
+#if defined(__acc_struct_packed) && !defined(__acc_struct_packed_ma)
+# define __acc_struct_packed_ma(s) __acc_struct_packed(s)
+#endif
+#if defined(__acc_struct_packed_end) && !defined(__acc_struct_packed_ma_end)
+# define __acc_struct_packed_ma_end() __acc_struct_packed_end()
+#endif
+#if !defined(__acc_byte_struct)
+#if defined(__acc_struct_packed)
+# define __acc_byte_struct(s,n) __acc_struct_packed(s) unsigned char a[n]; __acc_struct_packed_end()
+# define __acc_byte_struct_ma(s,n) __acc_struct_packed_ma(s) unsigned char a[n]; __acc_struct_packed_ma_end()
+#elif (ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_PGI || (ACC_CC_SUNPROC >= 0x5100))
+# define __acc_byte_struct(s,n) struct s { unsigned char a[n]; } __attribute__((__packed__));
+# define __acc_byte_struct_ma(s,n) struct s { unsigned char a[n]; } __acc_may_alias __attribute__((__packed__));
+#endif
+#endif
+#if defined(__acc_byte_struct) && !defined(__acc_byte_struct_ma)
+# define __acc_byte_struct_ma(s,n) __acc_byte_struct(s,n)
+#endif
+#if !defined(__acc_struct_align16) && (__acc_HAVE_alignof)
+#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x030000ul))
+#elif (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
+#elif (ACC_CC_CILLY || ACC_CC_PCC)
+#elif (ACC_CC_INTELC_MSC) || (ACC_CC_MSC && (_MSC_VER >= 1300))
+# define __acc_struct_align16(s) struct __declspec(align(16)) s {
+# define __acc_struct_align16_end() };
+# define __acc_struct_align32(s) struct __declspec(align(32)) s {
+# define __acc_struct_align32_end() };
+# define __acc_struct_align64(s) struct __declspec(align(64)) s {
+# define __acc_struct_align64_end() };
+#elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_GNUC || (ACC_CC_IBMC >= 700) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_struct_align16(s) struct s {
+# define __acc_struct_align16_end() } __attribute__((__aligned__(16)));
+# define __acc_struct_align32(s) struct s {
+# define __acc_struct_align32_end() } __attribute__((__aligned__(32)));
+# define __acc_struct_align64(s) struct s {
+# define __acc_struct_align64_end() } __attribute__((__aligned__(64)));
+#endif
+#endif
+#if !defined(__acc_union_um)
+#if (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
+#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
+#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER < 810))
+#elif (ACC_CC_PCC && (ACC_CC_PCC < 0x010100ul))
+#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC < 0x5110)) && !defined(__cplusplus)
+#elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || (ACC_CC_PGI >= 0x0d0a00ul) || (ACC_CC_SUNPROC >= 0x5100))
+# define __acc_union_am(s) union s {
+# define __acc_union_am_end() } __acc_may_alias;
+# define __acc_union_um(s) union s {
+# define __acc_union_um_end() } __acc_may_alias __attribute__((__packed__));
+#elif (ACC_CC_IBMC >= 700)
+# define __acc_union_am(s) __acc_gnuc_extension__ union s {
+# define __acc_union_am_end() } __acc_may_alias;
+# define __acc_union_um(s) __acc_gnuc_extension__ union s {
+# define __acc_union_um_end() } __acc_may_alias __attribute__((__packed__));
+#elif (ACC_CC_INTELC_MSC) || (ACC_CC_MSC && (_MSC_VER >= 1300))
+# define __acc_union_um(s) __pragma(pack(push,1)) union s {
+# define __acc_union_um_end() } __pragma(pack(pop));
+#elif (ACC_CC_WATCOMC && (__WATCOMC__ >= 900))
+# define __acc_union_um(s) _Packed union s {
+# define __acc_union_um_end() };
+#endif
+#endif
+#if !defined(__acc_union_am)
+# define __acc_union_am(s) union s {
+# define __acc_union_am_end() };
+#endif
+#if !defined(__acc_constructor)
+#if (ACC_CC_GNUC >= 0x030400ul)
+# define __acc_constructor __attribute__((__constructor__,__used__))
+#elif (ACC_CC_GNUC >= 0x020700ul)
+# define __acc_constructor __attribute__((__constructor__))
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
+# define __acc_constructor __attribute__((__constructor__,__used__))
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_constructor __attribute__((__constructor__))
+#endif
+#endif
+#if defined(__acc_constructor)
+# ifndef __acc_HAVE_constructor
+# define __acc_HAVE_constructor 1
+# endif
+#endif
+#if !defined(__acc_destructor)
+#if (ACC_CC_GNUC >= 0x030400ul)
+# define __acc_destructor __attribute__((__destructor__,__used__))
+#elif (ACC_CC_GNUC >= 0x020700ul)
+# define __acc_destructor __attribute__((__destructor__))
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
+# define __acc_destructor __attribute__((__destructor__,__used__))
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_destructor __attribute__((__destructor__))
+#endif
+#endif
+#if defined(__acc_destructor)
+# ifndef __acc_HAVE_destructor
+# define __acc_HAVE_destructor 1
+# endif
+#endif
+#if (__acc_HAVE_destructor) && !(__acc_HAVE_constructor)
+# error "unexpected configuration - check your compiler defines"
+#endif
+#if !defined(__acc_likely) && !defined(__acc_unlikely)
+#if (ACC_CC_GNUC >= 0x030200ul)
+# define __acc_likely(e) (__builtin_expect(!!(e),1))
+# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
+#elif (ACC_CC_IBMC >= 1010)
+# define __acc_likely(e) (__builtin_expect(!!(e),1))
+# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
+#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800))
+# define __acc_likely(e) (__builtin_expect(!!(e),1))
+# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
+#elif (ACC_CC_CLANG && ACC_CC_CLANG_C2)
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+# define __acc_likely(e) (__builtin_expect(!!(e),1))
+# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
+#endif
+#endif
+#if defined(__acc_likely)
+# ifndef __acc_HAVE_likely
+# define __acc_HAVE_likely 1
+# endif
+#else
+# define __acc_likely(e) (e)
+#endif
+#if defined(__acc_very_likely)
+# ifndef __acc_HAVE_very_likely
+# define __acc_HAVE_very_likely 1
+# endif
+#else
+# define __acc_very_likely(e) __acc_likely(e)
+#endif
+#if defined(__acc_unlikely)
+# ifndef __acc_HAVE_unlikely
+# define __acc_HAVE_unlikely 1
+# endif
+#else
+# define __acc_unlikely(e) (e)
+#endif
+#if defined(__acc_very_unlikely)
+# ifndef __acc_HAVE_very_unlikely
+# define __acc_HAVE_very_unlikely 1
+# endif
+#else
+# define __acc_very_unlikely(e) __acc_unlikely(e)
+#endif
+#if !defined(__acc_loop_forever)
+# if (ACC_CC_IBMC)
+# define __acc_loop_forever() ACC_BLOCK_BEGIN for (;;) { ; } ACC_BLOCK_END
+# else
+# define __acc_loop_forever() do { ; } while __acc_cte(1)
+# endif
+#endif
+#if !defined(__acc_unreachable)
+#if (ACC_CC_CLANG && (ACC_CC_CLANG >= 0x020800ul)) && acc_has_builtin(__builtin_unreachable)
+# define __acc_unreachable() __builtin_unreachable();
+#elif (ACC_CC_GNUC >= 0x040500ul)
+# define __acc_unreachable() __builtin_unreachable();
+#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1
+# define __acc_unreachable() __builtin_unreachable();
+#endif
+#endif
+#if defined(__acc_unreachable)
+# ifndef __acc_HAVE_unreachable
+# define __acc_HAVE_unreachable 1
+# endif
+#else
+# if 0
+# define __acc_unreachable() ((void)0);
+# else
+# define __acc_unreachable() __acc_loop_forever();
+# endif
+#endif
+#if !defined(acc_unused_funcs_impl)
+# if 1 && (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020700ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
+# define acc_unused_funcs_impl(r,f) static r __attribute__((__unused__)) f
+# elif 1 && (ACC_CC_BORLANDC || ACC_CC_GNUC)
+# define acc_unused_funcs_impl(r,f) static r f
+# else
+# define acc_unused_funcs_impl(r,f) __acc_static_forceinline r f
+# endif
+#endif
+#ifndef __ACC_CTA_NAME
+#if (ACC_CFG_USE_COUNTER)
+# define __ACC_CTA_NAME(a) ACC_PP_ECONCAT2(a,__COUNTER__)
+#else
+# define __ACC_CTA_NAME(a) ACC_PP_ECONCAT2(a,__LINE__)
+#endif
+#endif
+#if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
+# if (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
+# define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN extern int __ACC_CTA_NAME(acc_cta__)[1-!(e)]; ACC_EXTERN_C_END
+# elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
+# define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN extern int __ACC_CTA_NAME(acc_cta__)[1u-2*!(e)]; ACC_EXTERN_C_END
+# elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
+# define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN extern int __ACC_CTA_NAME(acc_cta__)[1-!(e)]; ACC_EXTERN_C_END
+# elif (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020900ul)) && defined(__cplusplus)
+# define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN int __ACC_CTA_NAME(acc_cta_f__)(int [1-2*!(e)]); ACC_EXTERN_C_END
+# elif (ACC_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
+# define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN enum {__ACC_CTA_NAME(acc_cta_e__)=1/!!(e)} __attribute__((__unused__)); ACC_EXTERN_C_END
+# else
+# define ACC_COMPILE_TIME_ASSERT_HEADER(e) ACC_EXTERN_C_BEGIN extern int __ACC_CTA_NAME(acc_cta__)[1-2*!(e)]; ACC_EXTERN_C_END
+# endif
+#endif
+#if !defined(ACC_COMPILE_TIME_ASSERT)
+# if (ACC_CC_AZTECC)
+# define ACC_COMPILE_TIME_ASSERT(e) {typedef int __ACC_CTA_NAME(acc_cta_t__)[1-!(e)];}
+# elif (ACC_CC_CLANG && (ACC_CC_CLANG >= 0x030000ul))
+# define ACC_COMPILE_TIME_ASSERT(e) {typedef int __ACC_CTA_NAME(acc_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
+# elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
+# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
+# elif (ACC_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__)
+# define ACC_COMPILE_TIME_ASSERT(e) {(void) (0/!!(e));}
+# elif (ACC_CC_GNUC >= 0x040700ul) && (ACC_CFG_USE_COUNTER) && defined(__cplusplus)
+# define ACC_COMPILE_TIME_ASSERT(e) {enum {__ACC_CTA_NAME(acc_cta_e__)=1/!!(e)} __attribute__((__unused__));}
+# elif (ACC_CC_GNUC >= 0x040700ul)
+# define ACC_COMPILE_TIME_ASSERT(e) {typedef int __ACC_CTA_NAME(acc_cta_t__)[1-2*!(e)] __attribute__((__unused__));}
+# elif (ACC_CC_MSC && (_MSC_VER < 900))
+# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
+# elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
+# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
+# else
+# define ACC_COMPILE_TIME_ASSERT(e) {typedef int __ACC_CTA_NAME(acc_cta_t__)[1-2*!(e)];}
+# endif
+#endif
+#if (ACC_LANG_ASSEMBLER)
+# undef ACC_COMPILE_TIME_ASSERT_HEADER
+# define ACC_COMPILE_TIME_ASSERT_HEADER(e) /*empty*/
+#else
+ACC_COMPILE_TIME_ASSERT_HEADER(1 == 1)
+#if defined(__cplusplus)
+extern "C" { ACC_COMPILE_TIME_ASSERT_HEADER(2 == 2) }
+#endif
+ACC_COMPILE_TIME_ASSERT_HEADER(3 == 3)
+#endif
+#if (ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
+# if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC)
+# elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
+# define __acc_cdecl __cdecl
+# define __acc_cdecl_atexit /*empty*/
+# define __acc_cdecl_main __cdecl
+# if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
+# define __acc_cdecl_qsort __pascal
+# elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
+# define __acc_cdecl_qsort _stdcall
+# else
+# define __acc_cdecl_qsort __cdecl
+# endif
+# elif (ACC_CC_WATCOMC)
+# define __acc_cdecl __cdecl
+# else
+# define __acc_cdecl __cdecl
+# define __acc_cdecl_atexit __cdecl
+# define __acc_cdecl_main __cdecl
+# define __acc_cdecl_qsort __cdecl
+# endif
+# if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC)
+# elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
+# define __acc_cdecl_sighandler __pascal
+# elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
+# define __acc_cdecl_sighandler _stdcall
+# elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
+# define __acc_cdecl_sighandler __clrcall
+# elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
+# if defined(_DLL)
+# define __acc_cdecl_sighandler _far _cdecl _loadds
+# elif defined(_MT)
+# define __acc_cdecl_sighandler _far _cdecl
+# else
+# define __acc_cdecl_sighandler _cdecl
+# endif
+# else
+# define __acc_cdecl_sighandler __cdecl
+# endif
+#elif (ACC_ARCH_I386) && (ACC_CC_WATCOMC)
+# define __acc_cdecl __cdecl
+#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
+# define __acc_cdecl cdecl
+#endif
+#if !defined(__acc_cdecl)
+# define __acc_cdecl /*empty*/
+#endif
+#if !defined(__acc_cdecl_atexit)
+# define __acc_cdecl_atexit /*empty*/
+#endif
+#if !defined(__acc_cdecl_main)
+# define __acc_cdecl_main /*empty*/
+#endif
+#if !defined(__acc_cdecl_qsort)
+# define __acc_cdecl_qsort /*empty*/
+#endif
+#if !defined(__acc_cdecl_sighandler)
+# define __acc_cdecl_sighandler /*empty*/
+#endif
+#if !defined(__acc_cdecl_va)
+# define __acc_cdecl_va __acc_cdecl
+#endif
+#if !(ACC_CFG_NO_WINDOWS_H)
+#if !defined(ACC_HAVE_WINDOWS_H)
+#if (ACC_OS_CYGWIN || (ACC_OS_EMX && defined(__RSXNT__)) || ACC_OS_WIN32 || ACC_OS_WIN64)
+# if (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
+# elif ((ACC_OS_WIN32 && defined(__PW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x030000ul)))
+# elif ((ACC_OS_CYGWIN || defined(__MINGW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025f00ul)))
+# else
+# define ACC_HAVE_WINDOWS_H 1
+# endif
+#endif
+#endif
+#endif
+#define ACC_SIZEOF_CHAR 1
+#ifndef ACC_SIZEOF_SHORT
#if defined(SIZEOF_SHORT)
# define ACC_SIZEOF_SHORT (SIZEOF_SHORT)
+#elif defined(__SIZEOF_SHORT__)
+# define ACC_SIZEOF_SHORT (__SIZEOF_SHORT__)
+#endif
#endif
+#ifndef ACC_SIZEOF_INT
#if defined(SIZEOF_INT)
# define ACC_SIZEOF_INT (SIZEOF_INT)
+#elif defined(__SIZEOF_INT__)
+# define ACC_SIZEOF_INT (__SIZEOF_INT__)
#endif
+#endif
+#ifndef ACC_SIZEOF_LONG
#if defined(SIZEOF_LONG)
# define ACC_SIZEOF_LONG (SIZEOF_LONG)
+#elif defined(__SIZEOF_LONG__)
+# define ACC_SIZEOF_LONG (__SIZEOF_LONG__)
+#endif
#endif
+#ifndef ACC_SIZEOF_LONG_LONG
#if defined(SIZEOF_LONG_LONG)
# define ACC_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG)
+#elif defined(__SIZEOF_LONG_LONG__)
+# define ACC_SIZEOF_LONG_LONG (__SIZEOF_LONG_LONG__)
#endif
+#endif
+#ifndef ACC_SIZEOF___INT16
#if defined(SIZEOF___INT16)
# define ACC_SIZEOF___INT16 (SIZEOF___INT16)
#endif
+#endif
+#ifndef ACC_SIZEOF___INT32
#if defined(SIZEOF___INT32)
# define ACC_SIZEOF___INT32 (SIZEOF___INT32)
#endif
+#endif
+#ifndef ACC_SIZEOF___INT64
#if defined(SIZEOF___INT64)
# define ACC_SIZEOF___INT64 (SIZEOF___INT64)
#endif
+#endif
+#ifndef ACC_SIZEOF_VOID_P
#if defined(SIZEOF_VOID_P)
# define ACC_SIZEOF_VOID_P (SIZEOF_VOID_P)
+#elif defined(__SIZEOF_POINTER__)
+# define ACC_SIZEOF_VOID_P (__SIZEOF_POINTER__)
+#endif
#endif
+#ifndef ACC_SIZEOF_SIZE_T
#if defined(SIZEOF_SIZE_T)
# define ACC_SIZEOF_SIZE_T (SIZEOF_SIZE_T)
+#elif defined(__SIZEOF_SIZE_T__)
+# define ACC_SIZEOF_SIZE_T (__SIZEOF_SIZE_T__)
+#endif
#endif
+#ifndef ACC_SIZEOF_PTRDIFF_T
#if defined(SIZEOF_PTRDIFF_T)
# define ACC_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T)
+#elif defined(__SIZEOF_PTRDIFF_T__)
+# define ACC_SIZEOF_PTRDIFF_T (__SIZEOF_PTRDIFF_T__)
+#endif
#endif
#define __ACC_LSR(x,b) (((x)+0ul) >> (b))
#if !defined(ACC_SIZEOF_SHORT)
@@ -1135,6 +2248,7 @@ extern "C" {
# error "ACC_SIZEOF_SHORT"
# endif
#endif
+ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_SHORT == sizeof(short))
#if !defined(ACC_SIZEOF_INT)
# if (ACC_ARCH_CRAY_PVP)
# define ACC_SIZEOF_INT 8
@@ -1156,6 +2270,7 @@ extern "C" {
# error "ACC_SIZEOF_INT"
# endif
#endif
+ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_INT == sizeof(int))
#if !defined(ACC_SIZEOF_LONG)
# if (ULONG_MAX == ACC_0xffffffffL)
# define ACC_SIZEOF_LONG 4
@@ -1165,6 +2280,8 @@ extern "C" {
# define ACC_SIZEOF_LONG 2
# elif (__ACC_LSR(ULONG_MAX,31) == 1)
# define ACC_SIZEOF_LONG 4
+# elif (__ACC_LSR(ULONG_MAX,39) == 1)
+# define ACC_SIZEOF_LONG 5
# elif (__ACC_LSR(ULONG_MAX,63) == 1)
# define ACC_SIZEOF_LONG 8
# elif (__ACC_LSR(ULONG_MAX,127) == 1)
@@ -1173,11 +2290,12 @@ extern "C" {
# error "ACC_SIZEOF_LONG"
# endif
#endif
+ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_LONG == sizeof(long))
#if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
#if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
# if (ACC_CC_GNUC >= 0x030300ul)
-# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0)
+# if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0))
# define ACC_SIZEOF_LONG_LONG ACC_SIZEOF_LONG
# elif (__ACC_LSR(__LONG_LONG_MAX__,30) == 1)
# define ACC_SIZEOF_LONG_LONG 4
@@ -1191,7 +2309,7 @@ extern "C" {
#if (ACC_ARCH_I086 && ACC_CC_DMC)
#elif (ACC_CC_CILLY) && defined(__GNUC__)
# define ACC_SIZEOF_LONG_LONG 8
-#elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
+#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define ACC_SIZEOF_LONG_LONG 8
#elif ((ACC_OS_WIN32 || ACC_OS_WIN64 || defined(_WIN32)) && ACC_CC_MSC && (_MSC_VER >= 1400))
# define ACC_SIZEOF_LONG_LONG 8
@@ -1213,11 +2331,13 @@ extern "C" {
# define ACC_SIZEOF___INT64 8
#elif (ACC_ARCH_I386 && (ACC_CC_WATCOMC && (__WATCOMC__ >= 1100)))
# define ACC_SIZEOF___INT64 8
-#elif (ACC_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64))
+#elif (ACC_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64))
+# define ACC_SIZEOF_LONG_LONG 8
+#elif (ACC_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) == 64))
# define ACC_SIZEOF___INT64 8
#elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
# define ACC_SIZEOF_LONG_LONG 8
-#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
+#elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64)
# define ACC_SIZEOF_LONG_LONG 8
#elif (ACC_CC_SDCC) && (ACC_SIZEOF_INT == 2)
#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
@@ -1230,87 +2350,133 @@ extern "C" {
# undef ACC_SIZEOF_LONG_LONG
# endif
#endif
-#if (ACC_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG)
+#if (ACC_CFG_NO_LONG_LONG)
+# undef ACC_SIZEOF_LONG_LONG
+#elif defined(__NO_LONG_LONG)
+# undef ACC_SIZEOF_LONG_LONG
+#elif defined(_NO_LONGLONG)
# undef ACC_SIZEOF_LONG_LONG
#endif
-#if !defined(ACC_SIZEOF_VOID_P)
-#if (ACC_ARCH_I086)
-# define __ACC_WORDSIZE 2
-# if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
-# define ACC_SIZEOF_VOID_P 2
-# elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
-# define ACC_SIZEOF_VOID_P 4
+#if !defined(ACC_WORDSIZE)
+#if (ACC_ARCH_ALPHA)
+# define ACC_WORDSIZE 8
+#elif (ACC_ARCH_AMD64)
+# define ACC_WORDSIZE 8
+#elif (ACC_ARCH_ARM64)
+# define ACC_WORDSIZE 8
+#elif (ACC_ARCH_AVR)
+# define ACC_WORDSIZE 1
+#elif (ACC_ARCH_H8300)
+# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
+# define ACC_WORDSIZE 4
# else
-# error "ACC_MM"
+# define ACC_WORDSIZE 2
# endif
-#elif (ACC_ARCH_AVR || ACC_ARCH_Z80)
-# define __ACC_WORDSIZE 1
+#elif (ACC_ARCH_I086)
+# define ACC_WORDSIZE 2
+#elif (ACC_ARCH_IA64)
+# define ACC_WORDSIZE 8
+#elif (ACC_ARCH_M16C)
+# define ACC_WORDSIZE 2
+#elif (ACC_ARCH_SPU)
+# define ACC_WORDSIZE 4
+#elif (ACC_ARCH_Z80)
+# define ACC_WORDSIZE 1
+#elif (ACC_ARCH_MIPS) && (ACC_SIZEOF_LONG == 8) && (defined(__R5900) || defined(__MIPS_PSX2__))
+# define ACC_WORDSIZE 8
+#elif (ACC_ARCH_MIPS) && (ACC_SIZEOF_LONG == 4) && defined(__mips64) && defined(_MIPS_SIM) && defined(_ABIN32) && (_MIPS_SIM+0 == _ABIN32+0)
+# define ACC_WORDSIZE 8
+#elif (ACC_OS_OS400 || defined(__OS400__))
+# define ACC_WORDSIZE 8
+#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
+# define ACC_WORDSIZE 8
+#endif
+#endif
+#if !defined(ACC_SIZEOF_VOID_P)
+#if defined(__ILP32__) || defined(__ILP32) || defined(_ILP32)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 4)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4)
+# define ACC_SIZEOF_VOID_P 4
+#elif defined(__ILP64__) || defined(__ILP64) || defined(_ILP64)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 8)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
+# define ACC_SIZEOF_VOID_P 8
+#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4)
+# define ACC_SIZEOF_VOID_P 8
+#elif defined(__LP64__) || defined(__LP64) || defined(_LP64)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8)
+# define ACC_SIZEOF_VOID_P 8
+#elif (ACC_ARCH_AVR)
# define ACC_SIZEOF_VOID_P 2
#elif (ACC_ARCH_C166 || ACC_ARCH_MCS51 || ACC_ARCH_MCS251 || ACC_ARCH_MSP430)
# define ACC_SIZEOF_VOID_P 2
#elif (ACC_ARCH_H8300)
-# if defined(__NORMAL_MODE__)
-# define __ACC_WORDSIZE 4
-# define ACC_SIZEOF_VOID_P 2
-# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
-# define __ACC_WORDSIZE 4
-# define ACC_SIZEOF_VOID_P 4
+# if defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
+ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_WORDSIZE == 4)
+# if defined(__NORMAL_MODE__)
+# define ACC_SIZEOF_VOID_P 2
+# else
+# define ACC_SIZEOF_VOID_P 4
+# endif
# else
-# define __ACC_WORDSIZE 2
+ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_WORDSIZE == 2)
# define ACC_SIZEOF_VOID_P 2
# endif
# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x040000ul)) && (ACC_SIZEOF_INT == 4)
# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_INT
# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_INT
# endif
+#elif (ACC_ARCH_I086)
+# if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
+# define ACC_SIZEOF_VOID_P 2
+# elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
+# define ACC_SIZEOF_VOID_P 4
+# else
+# error "invalid ACC_ARCH_I086 memory model"
+# endif
#elif (ACC_ARCH_M16C)
-# define __ACC_WORDSIZE 2
# if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
# define ACC_SIZEOF_VOID_P 4
# else
# define ACC_SIZEOF_VOID_P 2
# endif
+#elif (ACC_ARCH_SPU)
+# define ACC_SIZEOF_VOID_P 4
+#elif (ACC_ARCH_Z80)
+# define ACC_SIZEOF_VOID_P 2
#elif (ACC_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
-# define __ACC_WORDSIZE 8
# define ACC_SIZEOF_VOID_P 4
-#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
-# define __ACC_WORDSIZE 8
-# define ACC_SIZEOF_VOID_P 8
-#elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
-# define ACC_SIZEOF_VOID_P ACC_SIZEOF_LONG
-# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
-# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
#elif (ACC_OS_OS400 || defined(__OS400__))
-# define __ACC_WORDSIZE ACC_SIZEOF_LONG
-# define ACC_SIZEOF_VOID_P 16
-# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
-# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
+# if defined(__LLP64_IFC__)
+# define ACC_SIZEOF_VOID_P 8
+# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
+# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
+# else
+# define ACC_SIZEOF_VOID_P 16
+# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
+# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
+# endif
#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
# define ACC_SIZEOF_VOID_P 8
# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
-#elif (ACC_ARCH_SPU)
-# if 0
-# define __ACC_WORDSIZE 16
-# endif
-# define ACC_SIZEOF_VOID_P 4
-#else
-# define ACC_SIZEOF_VOID_P ACC_SIZEOF_LONG
#endif
#endif
-#if !defined(ACC_WORDSIZE)
-# if defined(__ACC_WORDSIZE)
-# define ACC_WORDSIZE __ACC_WORDSIZE
-# else
-# define ACC_WORDSIZE ACC_SIZEOF_VOID_P
-# endif
+#if !defined(ACC_SIZEOF_VOID_P)
+# define ACC_SIZEOF_VOID_P ACC_SIZEOF_LONG
#endif
+ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_VOID_P == sizeof(void *))
#if !defined(ACC_SIZEOF_SIZE_T)
#if (ACC_ARCH_I086 || ACC_ARCH_M16C)
# define ACC_SIZEOF_SIZE_T 2
-#else
+#endif
+#endif
+#if !defined(ACC_SIZEOF_SIZE_T)
# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_VOID_P
#endif
+#if defined(offsetof)
+ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_SIZE_T == sizeof(size_t))
#endif
#if !defined(ACC_SIZEOF_PTRDIFF_T)
#if (ACC_ARCH_I086)
@@ -1323,11 +2489,18 @@ extern "C" {
# define ACC_SIZEOF_PTRDIFF_T 2
# endif
# else
-# error "ACC_MM"
+# error "invalid ACC_ARCH_I086 memory model"
# endif
-#else
+#endif
+#endif
+#if !defined(ACC_SIZEOF_PTRDIFF_T)
# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_SIZE_T
#endif
+#if defined(offsetof)
+ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
+#endif
+#if !defined(ACC_WORDSIZE)
+# define ACC_WORDSIZE ACC_SIZEOF_VOID_P
#endif
#if (ACC_ABI_NEUTRAL_ENDIAN)
# undef ACC_ABI_BIG_ENDIAN
@@ -1337,9 +2510,9 @@ extern "C" {
# define ACC_ABI_BIG_ENDIAN 1
#elif (ACC_ARCH_IA64) && (ACC_OS_POSIX_LINUX || ACC_OS_WIN64)
# define ACC_ABI_LITTLE_ENDIAN 1
-#elif (ACC_ARCH_ALPHA || ACC_ARCH_AMD64 || ACC_ARCH_BLACKFIN || ACC_ARCH_CRIS || ACC_ARCH_I086 || ACC_ARCH_I386 || ACC_ARCH_MSP430)
+#elif (ACC_ARCH_ALPHA || ACC_ARCH_AMD64 || ACC_ARCH_BLACKFIN || ACC_ARCH_CRIS || ACC_ARCH_I086 || ACC_ARCH_I386 || ACC_ARCH_MSP430 || ACC_ARCH_RISCV)
# define ACC_ABI_LITTLE_ENDIAN 1
-#elif (ACC_ARCH_AVR32 || ACC_ARCH_M68K || ACC_ARCH_S390)
+#elif (ACC_ARCH_AVR32 || ACC_ARCH_M68K || ACC_ARCH_S390 || ACC_ARCH_SPU)
# define ACC_ABI_BIG_ENDIAN 1
#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__)
# if (__LITTLE_ENDIAN__ == 1)
@@ -1351,10 +2524,31 @@ extern "C" {
# define ACC_ABI_BIG_ENDIAN 1
#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
# define ACC_ABI_LITTLE_ENDIAN 1
+#elif 1 && (ACC_ARCH_ARM) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
+# define ACC_ABI_BIG_ENDIAN 1
#elif 1 && (ACC_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
# define ACC_ABI_BIG_ENDIAN 1
#elif 1 && (ACC_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
# define ACC_ABI_LITTLE_ENDIAN 1
+#elif 1 && (ACC_ARCH_ARM) && defined(_MSC_VER) && defined(_WIN32)
+# define ACC_ABI_LITTLE_ENDIAN 1
+#elif 1 && (ACC_ARCH_ARM && ACC_CC_ARMCC_ARMCC)
+# if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
+# error "unexpected configuration - check your compiler defines"
+# elif defined(__BIG_ENDIAN)
+# define ACC_ABI_BIG_ENDIAN 1
+# else
+# define ACC_ABI_LITTLE_ENDIAN 1
+# endif
+# define ACC_ABI_LITTLE_ENDIAN 1
+#elif 1 && (ACC_ARCH_ARM64) && defined(__ARM_BIG_ENDIAN) && ((__ARM_BIG_ENDIAN)+0)
+# define ACC_ABI_BIG_ENDIAN 1
+#elif 1 && (ACC_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__)
+# define ACC_ABI_BIG_ENDIAN 1
+#elif 1 && (ACC_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__)
+# define ACC_ABI_LITTLE_ENDIAN 1
+#elif 1 && (ACC_ARCH_ARM64) && defined(_MSC_VER) && defined(_WIN32)
+# define ACC_ABI_LITTLE_ENDIAN 1
#elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
# define ACC_ABI_BIG_ENDIAN 1
#elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
@@ -1362,7 +2556,7 @@ extern "C" {
#endif
#endif
#if (ACC_ABI_BIG_ENDIAN) && (ACC_ABI_LITTLE_ENDIAN)
-# error "this should not happen"
+# error "unexpected configuration - check your compiler defines"
#endif
#if (ACC_ABI_BIG_ENDIAN)
# define ACC_INFO_ABI_ENDIAN "be"
@@ -1377,6 +2571,9 @@ extern "C" {
#elif (ACC_SIZEOF_INT == 2 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
# define ACC_ABI_ILP16 1
# define ACC_INFO_ABI_PM "ilp16"
+#elif (ACC_SIZEOF_INT == 2 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 4)
+# define ACC_ABI_LP32 1
+# define ACC_INFO_ABI_PM "lp32"
#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 4)
# define ACC_ABI_ILP32 1
# define ACC_INFO_ABI_PM "ilp32"
@@ -1393,7 +2590,14 @@ extern "C" {
# define ACC_ABI_IP32L64 1
# define ACC_INFO_ABI_PM "ip32l64"
#endif
-#if !defined(__ACC_LIBC_OVERRIDE)
+#if (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_VOID_P == 4 && ACC_WORDSIZE == 8)
+# define ACC_ABI_IP32W64 1
+# ifndef ACC_INFO_ABI_PM
+# define ACC_INFO_ABI_PM "ip32w64"
+# endif
+#endif
+#if 0
+#elif !defined(__ACC_LIBC_OVERRIDE)
#if (ACC_LIBC_NAKED)
# define ACC_INFO_LIBC "naked"
#elif (ACC_LIBC_FREESTANDING)
@@ -1404,6 +2608,9 @@ extern "C" {
# define ACC_INFO_LIBC "isoc90"
#elif (ACC_LIBC_ISOC99)
# define ACC_INFO_LIBC "isoc99"
+#elif (ACC_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION)
+# define ACC_LIBC_ISOC90 1
+# define ACC_INFO_LIBC "isoc90"
#elif defined(__dietlibc__)
# define ACC_LIBC_DIETLIBC 1
# define ACC_INFO_LIBC "dietlibc"
@@ -1412,13 +2619,13 @@ extern "C" {
# define ACC_INFO_LIBC "newlib"
#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
# if defined(__UCLIBC_SUBLEVEL__)
-# define ACC_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__)
+# define ACC_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__-0) * 0x100 + (__UCLIBC_SUBLEVEL__-0))
# else
# define ACC_LIBC_UCLIBC 0x00090bL
# endif
-# define ACC_INFO_LIBC "uclibc"
+# define ACC_INFO_LIBC "uc" "libc"
#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
-# define ACC_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100)
+# define ACC_LIBC_GLIBC (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x100)
# define ACC_INFO_LIBC "glibc"
#elif (ACC_CC_MWERKS) && defined(__MSL__)
# define ACC_LIBC_MSL __MSL__
@@ -1431,424 +2638,196 @@ extern "C" {
# define ACC_INFO_LIBC "default"
#endif
#endif
-#if !defined(__acc_gnuc_extension__)
-#if (ACC_CC_GNUC >= 0x020800ul)
-# define __acc_gnuc_extension__ __extension__
-#elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __acc_gnuc_extension__ __extension__
-#else
-# define __acc_gnuc_extension__ /*empty*/
-#endif
-#endif
-#if !defined(__acc_ua_volatile)
-# define __acc_ua_volatile volatile
-#endif
-#if !defined(__acc_alignof)
-#if (ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
-# define __acc_alignof(e) __alignof__(e)
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
-# define __acc_alignof(e) __alignof__(e)
-#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
-# define __acc_alignof(e) __alignof(e)
-#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
-# define __acc_alignof(e) __alignof__(e)
-#endif
-#endif
-#if defined(__acc_alignof)
-# define __acc_HAVE_alignof 1
-#endif
-#if !defined(__acc_constructor)
-#if (ACC_CC_GNUC >= 0x030400ul)
-# define __acc_constructor __attribute__((__constructor__,__used__))
-#elif (ACC_CC_GNUC >= 0x020700ul)
-# define __acc_constructor __attribute__((__constructor__))
-#elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __acc_constructor __attribute__((__constructor__))
-#endif
-#endif
-#if defined(__acc_constructor)
-# define __acc_HAVE_constructor 1
-#endif
-#if !defined(__acc_destructor)
-#if (ACC_CC_GNUC >= 0x030400ul)
-# define __acc_destructor __attribute__((__destructor__,__used__))
-#elif (ACC_CC_GNUC >= 0x020700ul)
-# define __acc_destructor __attribute__((__destructor__))
-#elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __acc_destructor __attribute__((__destructor__))
-#endif
-#endif
-#if defined(__acc_destructor)
-# define __acc_HAVE_destructor 1
-#endif
-#if (__acc_HAVE_destructor) && !(__acc_HAVE_constructor)
-# error "this should not happen"
-#endif
-#if !defined(__acc_inline)
-#if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
-#elif defined(__cplusplus)
-# define __acc_inline inline
-#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
-# define __acc_inline __inline
-#elif (ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
-# define __acc_inline __inline__
-#elif (ACC_CC_DMC)
-# define __acc_inline __inline
-#elif (ACC_CC_INTELC)
-# define __acc_inline __inline
-#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
-# define __acc_inline __inline
-#elif (ACC_CC_MSC && (_MSC_VER >= 900))
-# define __acc_inline __inline
-#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
-# define __acc_inline __inline__
-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
-# define __acc_inline inline
-#endif
-#endif
-#if defined(__acc_inline)
-# define __acc_HAVE_inline 1
-#else
-# define __acc_inline /*empty*/
-#endif
-#if !defined(__acc_forceinline)
-#if (ACC_CC_GNUC >= 0x030200ul)
-# define __acc_forceinline __inline__ __attribute__((__always_inline__))
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
-# define __acc_forceinline __forceinline
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
-# define __acc_forceinline __inline__ __attribute__((__always_inline__))
-#elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __acc_forceinline __inline__ __attribute__((__always_inline__))
-#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
-# define __acc_forceinline __forceinline
-#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
-# define __acc_forceinline __inline__ __attribute__((__always_inline__))
+#if (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
+# define ACC_ASM_SYNTAX_MSC 1
+#elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
+#elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC == 0x011f00ul))
+#elif (ACC_ARCH_I386 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
+# define ACC_ASM_SYNTAX_GNUC 1
+#elif (ACC_ARCH_AMD64 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
+# define ACC_ASM_SYNTAX_GNUC 1
+#elif (ACC_CC_GNUC)
+# define ACC_ASM_SYNTAX_GNUC 1
#endif
+#if (ACC_ASM_SYNTAX_GNUC)
+#if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
+# define __ACC_ASM_CLOBBER "ax"
+# define __ACC_ASM_CLOBBER_LIST_CC /*empty*/
+# define __ACC_ASM_CLOBBER_LIST_CC_MEMORY /*empty*/
+# define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
+#elif (ACC_CC_INTELC && (__INTEL_COMPILER < 1000))
+# define __ACC_ASM_CLOBBER "memory"
+# define __ACC_ASM_CLOBBER_LIST_CC /*empty*/
+# define __ACC_ASM_CLOBBER_LIST_CC_MEMORY : "memory"
+# define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
+#else
+# define __ACC_ASM_CLOBBER "cc", "memory"
+# define __ACC_ASM_CLOBBER_LIST_CC : "cc"
+# define __ACC_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory"
+# define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
#endif
-#if defined(__acc_forceinline)
-# define __acc_HAVE_forceinline 1
-#else
-# define __acc_forceinline /*empty*/
#endif
-#if !defined(__acc_noinline)
-#if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
-# define __acc_noinline __attribute__((__noinline__,__used__))
-#elif (ACC_CC_GNUC >= 0x030200ul)
-# define __acc_noinline __attribute__((__noinline__))
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_MSC)
-# define __acc_noinline __declspec(noinline)
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
-# define __acc_noinline __attribute__((__noinline__))
-#elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __acc_noinline __attribute__((__noinline__))
-#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
-# define __acc_noinline __declspec(noinline)
-#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
-# if defined(__cplusplus)
-# else
-# define __acc_noinline __declspec(noinline)
+#if (ACC_ARCH_ALPHA)
+# define ACC_OPT_AVOID_UINT_INDEX 1
+#elif (ACC_ARCH_AMD64)
+# define ACC_OPT_AVOID_INT_INDEX 1
+# define ACC_OPT_AVOID_UINT_INDEX 1
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
# endif
-#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
-# define __acc_noinline __attribute__((__noinline__))
-#endif
-#endif
-#if defined(__acc_noinline)
-# define __acc_HAVE_noinline 1
-#else
-# define __acc_noinline /*empty*/
-#endif
-#if (__acc_HAVE_forceinline || __acc_HAVE_noinline) && !(__acc_HAVE_inline)
-# error "this should not happen"
-#endif
-#if !defined(__acc_noreturn)
-#if (ACC_CC_GNUC >= 0x020700ul)
-# define __acc_noreturn __attribute__((__noreturn__))
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
-# define __acc_noreturn __declspec(noreturn)
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
-# define __acc_noreturn __attribute__((__noreturn__))
-#elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __acc_noreturn __attribute__((__noreturn__))
-#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
-# define __acc_noreturn __declspec(noreturn)
-#endif
-#endif
-#if defined(__acc_noreturn)
-# define __acc_HAVE_noreturn 1
-#else
-# define __acc_noreturn /*empty*/
-#endif
-#if !defined(__acc_nothrow)
-#if (ACC_CC_GNUC >= 0x030300ul)
-# define __acc_nothrow __attribute__((__nothrow__))
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC) && defined(__cplusplus)
-# define __acc_nothrow __declspec(nothrow)
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 900) && ACC_CC_SYNTAX_GNUC)
-# define __acc_nothrow __attribute__((__nothrow__))
-#elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __acc_nothrow __attribute__((__nothrow__))
-#elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
-# define __acc_nothrow __declspec(nothrow)
-#endif
-#endif
-#if defined(__acc_nothrow)
-# define __acc_HAVE_nothrow 1
-#else
-# define __acc_nothrow /*empty*/
-#endif
-#if !defined(__acc_restrict)
-#if (ACC_CC_GNUC >= 0x030400ul)
-# define __acc_restrict __restrict__
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
-# define __acc_restrict __restrict__
-#elif (ACC_CC_CLANG || ACC_CC_LLVM)
-# define __acc_restrict __restrict__
-#elif (ACC_CC_MSC && (_MSC_VER >= 1400))
-# define __acc_restrict __restrict
-#endif
-#endif
-#if defined(__acc_restrict)
-# define __acc_HAVE_restrict 1
-#else
-# define __acc_restrict /*empty*/
-#endif
-#if !defined(__acc_likely) && !defined(__acc_unlikely)
-#if (ACC_CC_GNUC >= 0x030200ul)
-# define __acc_likely(e) (__builtin_expect(!!(e),1))
-# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
-#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800))
-# define __acc_likely(e) (__builtin_expect(!!(e),1))
-# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
-#elif (ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __acc_likely(e) (__builtin_expect(!!(e),1))
-# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
-#endif
-#endif
-#if defined(__acc_likely)
-# define __acc_HAVE_likely 1
-#else
-# define __acc_likely(e) (e)
-#endif
-#if defined(__acc_unlikely)
-# define __acc_HAVE_unlikely 1
-#else
-# define __acc_unlikely(e) (e)
-#endif
-#if !defined(ACC_UNUSED)
-# if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
-# define ACC_UNUSED(var) ((void) &var)
-# elif (ACC_CC_BORLANDC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PELLESC || ACC_CC_TURBOC)
-# define ACC_UNUSED(var) if (&var) ; else
-# elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define ACC_UNUSED(var) ((void) var)
-# elif (ACC_CC_MSC && (_MSC_VER < 900))
-# define ACC_UNUSED(var) if (&var) ; else
-# elif (ACC_CC_KEILC)
-# define ACC_UNUSED(var) {extern int __acc_unused[1-2*!(sizeof(var)>0)];}
-# elif (ACC_CC_PACIFICC)
-# define ACC_UNUSED(var) ((void) sizeof(var))
-# elif (ACC_CC_WATCOMC) && defined(__cplusplus)
-# define ACC_UNUSED(var) ((void) var)
-# else
-# define ACC_UNUSED(var) ((void) &var)
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
# endif
-#endif
-#if !defined(ACC_UNUSED_FUNC)
-# if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
-# define ACC_UNUSED_FUNC(func) ((void) func)
-# elif (ACC_CC_BORLANDC || ACC_CC_NDPC || ACC_CC_TURBOC)
-# define ACC_UNUSED_FUNC(func) if (func) ; else
-# elif (ACC_CC_CLANG || ACC_CC_LLVM)
-# define ACC_UNUSED_FUNC(func) ((void) &func)
-# elif (ACC_CC_MSC && (_MSC_VER < 900))
-# define ACC_UNUSED_FUNC(func) if (func) ; else
-# elif (ACC_CC_MSC)
-# define ACC_UNUSED_FUNC(func) ((void) &func)
-# elif (ACC_CC_KEILC || ACC_CC_PELLESC)
-# define ACC_UNUSED_FUNC(func) {extern int __acc_unused[1-2*!(sizeof((int)func)>0)];}
-# else
-# define ACC_UNUSED_FUNC(func) ((void) func)
+# ifndef ACC_OPT_UNALIGNED64
+# define ACC_OPT_UNALIGNED64 1
# endif
-#endif
-#if !defined(ACC_UNUSED_LABEL)
-# if (ACC_CC_WATCOMC) && defined(__cplusplus)
-# define ACC_UNUSED_LABEL(l) switch(0) case 1:goto l
-# elif (ACC_CC_CLANG || ACC_CC_INTELC || ACC_CC_WATCOMC)
-# define ACC_UNUSED_LABEL(l) if (0) goto l
-# else
-# define ACC_UNUSED_LABEL(l) switch(0) case 1:goto l
+#elif (ACC_ARCH_ARM)
+# if defined(__ARM_FEATURE_UNALIGNED)
+# if ((__ARM_FEATURE_UNALIGNED)+0)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
+# endif
+# elif 1 && (ACC_ARCH_ARM_THUMB2)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
+# elif 1 && defined(__ARM_ARCH) && ((__ARM_ARCH)+0 >= 7)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
+# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 7)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
+# elif 1 && defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM)+0 >= 6) && (defined(__TARGET_PROFILE_A) || defined(__TARGET_PROFILE_R))
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
+# elif 1 && defined(_MSC_VER) && defined(_M_ARM) && ((_M_ARM)+0 >= 7)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
# endif
-#endif
-#if !defined(ACC_DEFINE_UNINITIALIZED_VAR)
-# if 0
-# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var
-# elif 0 && (ACC_CC_GNUC)
-# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var
-# else
-# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init
+#elif (ACC_ARCH_ARM64)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
# endif
-#endif
-#if !defined(ACC_UNCONST_CAST)
-# if 0 && defined(__cplusplus)
-# define ACC_UNCONST_CAST(t,e) (const_cast<t> (e))
-# elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((acc_uintptr_t) ((const void *) (e))))))
-# else
-# define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((const void *) (e)))))
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
# endif
-#endif
-#if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
-# if (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
-# define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-!(e)];
-# elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
-# define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1u-2*!(e)];
-# elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
-# define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-!(e)];
-# else
-# define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-2*!(e)];
+# ifndef ACC_OPT_UNALIGNED64
+# define ACC_OPT_UNALIGNED64 1
# endif
-#endif
-#if !defined(ACC_COMPILE_TIME_ASSERT)
-# if (ACC_CC_AZTECC)
-# define ACC_COMPILE_TIME_ASSERT(e) {typedef int __acc_cta_t[1-!(e)];}
-# elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
-# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
-# elif (ACC_CC_MSC && (_MSC_VER < 900))
-# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
-# elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
-# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
-# else
-# define ACC_COMPILE_TIME_ASSERT(e) {typedef int __acc_cta_t[1-2*!(e)];}
+#elif (ACC_ARCH_CRIS)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
# endif
-#endif
-#if (ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
-# if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC)
-# elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
-# define __acc_cdecl __cdecl
-# define __acc_cdecl_atexit /*empty*/
-# define __acc_cdecl_main __cdecl
-# if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
-# define __acc_cdecl_qsort __pascal
-# elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
-# define __acc_cdecl_qsort _stdcall
-# else
-# define __acc_cdecl_qsort __cdecl
-# endif
-# elif (ACC_CC_WATCOMC)
-# define __acc_cdecl __cdecl
-# else
-# define __acc_cdecl __cdecl
-# define __acc_cdecl_atexit __cdecl
-# define __acc_cdecl_main __cdecl
-# define __acc_cdecl_qsort __cdecl
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
# endif
-# if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC)
-# elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
-# define __acc_cdecl_sighandler __pascal
-# elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
-# define __acc_cdecl_sighandler _stdcall
-# elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
-# define __acc_cdecl_sighandler __clrcall
-# elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
-# if defined(_DLL)
-# define __acc_cdecl_sighandler _far _cdecl _loadds
-# elif defined(_MT)
-# define __acc_cdecl_sighandler _far _cdecl
-# else
-# define __acc_cdecl_sighandler _cdecl
-# endif
-# else
-# define __acc_cdecl_sighandler __cdecl
+#elif (ACC_ARCH_I386)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
# endif
-#elif (ACC_ARCH_I386) && (ACC_CC_WATCOMC)
-# define __acc_cdecl __cdecl
-#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
-# define __acc_cdecl cdecl
-#endif
-#if !defined(__acc_cdecl)
-# define __acc_cdecl /*empty*/
-#endif
-#if !defined(__acc_cdecl_atexit)
-# define __acc_cdecl_atexit /*empty*/
-#endif
-#if !defined(__acc_cdecl_main)
-# define __acc_cdecl_main /*empty*/
-#endif
-#if !defined(__acc_cdecl_qsort)
-# define __acc_cdecl_qsort /*empty*/
-#endif
-#if !defined(__acc_cdecl_sighandler)
-# define __acc_cdecl_sighandler /*empty*/
-#endif
-#if !defined(__acc_cdecl_va)
-# define __acc_cdecl_va __acc_cdecl
-#endif
-#if !(ACC_CFG_NO_WINDOWS_H)
-#if (ACC_OS_CYGWIN || (ACC_OS_EMX && defined(__RSXNT__)) || ACC_OS_WIN32 || ACC_OS_WIN64)
-# if (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
-# elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
-# elif ((ACC_OS_CYGWIN || defined(__MINGW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025f00ul)))
-# else
-# define ACC_HAVE_WINDOWS_H 1
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
# endif
-#endif
-#endif
-#if (ACC_ARCH_ALPHA)
-# define ACC_OPT_AVOID_UINT_INDEX 1
-# define ACC_OPT_AVOID_SHORT 1
-# define ACC_OPT_AVOID_USHORT 1
-#elif (ACC_ARCH_AMD64)
-# define ACC_OPT_AVOID_INT_INDEX 1
-# define ACC_OPT_AVOID_UINT_INDEX 1
-# define ACC_OPT_UNALIGNED16 1
-# define ACC_OPT_UNALIGNED32 1
-# define ACC_OPT_UNALIGNED64 1
-#elif (ACC_ARCH_ARM && ACC_ARCH_ARM_THUMB)
-#elif (ACC_ARCH_ARM)
-# define ACC_OPT_AVOID_SHORT 1
-# define ACC_OPT_AVOID_USHORT 1
-#elif (ACC_ARCH_CRIS)
-# define ACC_OPT_UNALIGNED16 1
-# define ACC_OPT_UNALIGNED32 1
-#elif (ACC_ARCH_I386)
-# define ACC_OPT_UNALIGNED16 1
-# define ACC_OPT_UNALIGNED32 1
#elif (ACC_ARCH_IA64)
-# define ACC_OPT_AVOID_INT_INDEX 1
-# define ACC_OPT_AVOID_UINT_INDEX 1
-# define ACC_OPT_PREFER_POSTINC 1
+# define ACC_OPT_AVOID_INT_INDEX 1
+# define ACC_OPT_AVOID_UINT_INDEX 1
+# define ACC_OPT_PREFER_POSTINC 1
#elif (ACC_ARCH_M68K)
-# define ACC_OPT_PREFER_POSTINC 1
-# define ACC_OPT_PREFER_PREDEC 1
+# define ACC_OPT_PREFER_POSTINC 1
+# define ACC_OPT_PREFER_PREDEC 1
# if defined(__mc68020__) && !defined(__mcoldfire__)
-# define ACC_OPT_UNALIGNED16 1
-# define ACC_OPT_UNALIGNED32 1
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
# endif
#elif (ACC_ARCH_MIPS)
-# define ACC_OPT_AVOID_UINT_INDEX 1
+# define ACC_OPT_AVOID_UINT_INDEX 1
#elif (ACC_ARCH_POWERPC)
-# define ACC_OPT_PREFER_PREINC 1
-# define ACC_OPT_PREFER_PREDEC 1
-# if (ACC_ABI_BIG_ENDIAN)
-# define ACC_OPT_UNALIGNED16 1
-# define ACC_OPT_UNALIGNED32 1
+# define ACC_OPT_PREFER_PREINC 1
+# define ACC_OPT_PREFER_PREDEC 1
+# if (ACC_ABI_BIG_ENDIAN) || (ACC_WORDSIZE == 8)
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
+# if (ACC_WORDSIZE == 8)
+# ifndef ACC_OPT_UNALIGNED64
+# define ACC_OPT_UNALIGNED64 1
+# endif
+# endif
+# endif
+#elif (ACC_ARCH_RISCV)
+# define ACC_OPT_AVOID_UINT_INDEX 1
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
+# if (ACC_WORDSIZE == 8)
+# ifndef ACC_OPT_UNALIGNED64
+# define ACC_OPT_UNALIGNED64 1
+# endif
# endif
#elif (ACC_ARCH_S390)
-# define ACC_OPT_UNALIGNED16 1
-# define ACC_OPT_UNALIGNED32 1
-# if (ACC_SIZEOF_SIZE_T == 8)
-# define ACC_OPT_UNALIGNED64 1
+# ifndef ACC_OPT_UNALIGNED16
+# define ACC_OPT_UNALIGNED16 1
+# endif
+# ifndef ACC_OPT_UNALIGNED32
+# define ACC_OPT_UNALIGNED32 1
+# endif
+# if (ACC_WORDSIZE == 8)
+# ifndef ACC_OPT_UNALIGNED64
+# define ACC_OPT_UNALIGNED64 1
+# endif
# endif
#elif (ACC_ARCH_SH)
-# define ACC_OPT_PREFER_POSTINC 1
-# define ACC_OPT_PREFER_PREDEC 1
+# define ACC_OPT_PREFER_POSTINC 1
+# define ACC_OPT_PREFER_PREDEC 1
#endif
#ifndef ACC_CFG_NO_INLINE_ASM
-#if (ACC_CC_LLVM)
+#if (ACC_ABI_NEUTRAL_ENDIAN) || (ACC_ARCH_GENERIC)
+# define ACC_CFG_NO_INLINE_ASM 1
+#elif (ACC_CC_LLVM)
# define ACC_CFG_NO_INLINE_ASM 1
#endif
#endif
+#if (ACC_CFG_NO_INLINE_ASM)
+# undef ACC_ASM_SYNTAX_MSC
+# undef ACC_ASM_SYNTAX_GNUC
+# undef __ACC_ASM_CLOBBER
+# undef __ACC_ASM_CLOBBER_LIST_CC
+# undef __ACC_ASM_CLOBBER_LIST_CC_MEMORY
+# undef __ACC_ASM_CLOBBER_LIST_EMPTY
+#endif
#ifndef ACC_CFG_NO_UNALIGNED
#if (ACC_ABI_NEUTRAL_ENDIAN) || (ACC_ARCH_GENERIC)
# define ACC_CFG_NO_UNALIGNED 1
@@ -1859,25 +2838,6 @@ extern "C" {
# undef ACC_OPT_UNALIGNED32
# undef ACC_OPT_UNALIGNED64
#endif
-#if (ACC_CFG_NO_INLINE_ASM)
-#elif (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
-# define ACC_ASM_SYNTAX_MSC 1
-#elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
-#elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC == 0x011f00ul))
-#elif (ACC_ARCH_I386 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
-# define ACC_ASM_SYNTAX_GNUC 1
-#elif (ACC_ARCH_AMD64 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
-# define ACC_ASM_SYNTAX_GNUC 1
-#endif
-#if (ACC_ASM_SYNTAX_GNUC)
-#if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
-# define __ACC_ASM_CLOBBER "ax"
-#elif (ACC_CC_INTELC)
-# define __ACC_ASM_CLOBBER "memory"
-#else
-# define __ACC_ASM_CLOBBER "cc", "memory"
-#endif
-#endif
#if defined(__ACC_INFOSTR_MM)
#elif (ACC_MM_FLAT) && (defined(__ACC_INFOSTR_PM) || defined(ACC_INFO_ABI_PM))
# define __ACC_INFOSTR_MM ""
@@ -1921,6 +2881,465 @@ extern "C" {
#define ACC_INFO_STRING \
ACC_INFO_ARCH __ACC_INFOSTR_MM __ACC_INFOSTR_PM __ACC_INFOSTR_ENDIAN \
" " __ACC_INFOSTR_OSNAME __ACC_INFOSTR_LIBC " " ACC_INFO_CC __ACC_INFOSTR_CCVER
+#if !(ACC_CFG_SKIP_ACC_TYPES)
+#if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
+# error "missing defines for sizes"
+#endif
+#if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
+# error "missing defines for sizes"
+#endif
+#define ACC_TYPEOF_CHAR 1u
+#define ACC_TYPEOF_SHORT 2u
+#define ACC_TYPEOF_INT 3u
+#define ACC_TYPEOF_LONG 4u
+#define ACC_TYPEOF_LONG_LONG 5u
+#define ACC_TYPEOF___INT8 17u
+#define ACC_TYPEOF___INT16 18u
+#define ACC_TYPEOF___INT32 19u
+#define ACC_TYPEOF___INT64 20u
+#define ACC_TYPEOF___INT128 21u
+#define ACC_TYPEOF___INT256 22u
+#define ACC_TYPEOF___MODE_QI 33u
+#define ACC_TYPEOF___MODE_HI 34u
+#define ACC_TYPEOF___MODE_SI 35u
+#define ACC_TYPEOF___MODE_DI 36u
+#define ACC_TYPEOF___MODE_TI 37u
+#define ACC_TYPEOF_CHAR_P 129u
+#if !defined(acc_llong_t)
+#if (ACC_SIZEOF_LONG_LONG+0 > 0)
+# if !(ACC_LANG_ASSEMBLER)
+ __acc_gnuc_extension__ typedef long long acc_llong_t__;
+ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t__;
+# endif
+# define acc_llong_t acc_llong_t__
+# define acc_ullong_t acc_ullong_t__
+#endif
+#endif
+#if !defined(acc_int16e_t)
+#if (ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT) && (ACC_SIZEOF_SHORT != 2)
+# undef ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T
+#endif
+#if (ACC_SIZEOF_LONG == 2) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT)
+# define acc_int16e_t long
+# define acc_uint16e_t unsigned long
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_LONG
+#elif (ACC_SIZEOF_INT == 2) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT)
+# define acc_int16e_t int
+# define acc_uint16e_t unsigned int
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_INT
+#elif (ACC_SIZEOF_SHORT == 2)
+# define acc_int16e_t short int
+# define acc_uint16e_t unsigned short int
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_SHORT
+#elif 1 && !(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM)
+# if !(ACC_LANG_ASSEMBLER)
+ typedef int acc_int16e_hi_t__ __attribute__((__mode__(__HI__)));
+ typedef unsigned int acc_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
+# endif
+# define acc_int16e_t acc_int16e_hi_t__
+# define acc_uint16e_t acc_uint16e_hi_t__
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF___MODE_HI
+#elif (ACC_SIZEOF___INT16 == 2)
+# define acc_int16e_t __int16
+# define acc_uint16e_t unsigned __int16
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF___INT16
+#else
+#endif
+#endif
+#if defined(acc_int16e_t)
+# define ACC_SIZEOF_ACC_INT16E_T 2
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == 2)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
+#endif
+#if !defined(acc_int32e_t)
+#if (ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T == ACC_TYPEOF_INT) && (ACC_SIZEOF_INT != 4)
+# undef ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T
+#endif
+#if (ACC_SIZEOF_LONG == 4) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T == ACC_TYPEOF_INT)
+# define acc_int32e_t long int
+# define acc_uint32e_t unsigned long int
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG
+#elif (ACC_SIZEOF_INT == 4)
+# define acc_int32e_t int
+# define acc_uint32e_t unsigned int
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_INT
+#elif (ACC_SIZEOF_SHORT == 4)
+# define acc_int32e_t short int
+# define acc_uint32e_t unsigned short int
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_SHORT
+#elif (ACC_SIZEOF_LONG_LONG == 4)
+# define acc_int32e_t acc_llong_t
+# define acc_uint32e_t acc_ullong_t
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG_LONG
+#elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
+# if !(ACC_LANG_ASSEMBLER)
+ typedef int acc_int32e_si_t__ __attribute__((__mode__(__SI__)));
+ typedef unsigned int acc_uint32e_si_t__ __attribute__((__mode__(__SI__)));
+# endif
+# define acc_int32e_t acc_int32e_si_t__
+# define acc_uint32e_t acc_uint32e_si_t__
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___MODE_SI
+#elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
+# if !(ACC_LANG_ASSEMBLER)
+ typedef int acc_int32e_si_t__ __attribute__((__mode__(__SI__)));
+ typedef unsigned int acc_uint32e_si_t__ __attribute__((__mode__(__SI__)));
+# endif
+# define acc_int32e_t acc_int32e_si_t__
+# define acc_uint32e_t acc_uint32e_si_t__
+# define ACC_INT32_C(c) (c##LL)
+# define ACC_UINT32_C(c) (c##ULL)
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___MODE_SI
+#elif (ACC_SIZEOF___INT32 == 4)
+# define acc_int32e_t __int32
+# define acc_uint32e_t unsigned __int32
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___INT32
+#else
+#endif
+#endif
+#if defined(acc_int32e_t)
+# define ACC_SIZEOF_ACC_INT32E_T 4
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32e_t) == 4)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32e_t) == ACC_SIZEOF_ACC_INT32E_T)
+#endif
+#if !defined(acc_int64e_t)
+#if (ACC_SIZEOF___INT64 == 8)
+# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T)
+# define ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
+# endif
+#endif
+#if (ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF_LONG_LONG) && (ACC_SIZEOF_LONG_LONG != 8)
+# undef ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T
+#endif
+#if (ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64) && (ACC_SIZEOF___INT64 != 8)
+# undef ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T
+#endif
+#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
+# define acc_int64e_t int
+# define acc_uint64e_t unsigned int
+# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_INT
+#elif (ACC_SIZEOF_LONG == 8) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF_LONG_LONG) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64)
+# define acc_int64e_t long int
+# define acc_uint64e_t unsigned long int
+# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG
+#elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64)
+# define acc_int64e_t acc_llong_t
+# define acc_uint64e_t acc_ullong_t
+# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
+# if (ACC_CC_BORLANDC)
+# define ACC_INT64_C(c) ((c) + 0ll)
+# define ACC_UINT64_C(c) ((c) + 0ull)
+# elif 0
+# define ACC_INT64_C(c) (__acc_gnuc_extension__ (c##LL))
+# define ACC_UINT64_C(c) (__acc_gnuc_extension__ (c##ULL))
+# else
+# define ACC_INT64_C(c) (c##LL)
+# define ACC_UINT64_C(c) (c##ULL)
+# endif
+#elif (ACC_SIZEOF___INT64 == 8)
+# define acc_int64e_t __int64
+# define acc_uint64e_t unsigned __int64
+# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
+# if (ACC_CC_BORLANDC)
+# define ACC_INT64_C(c) ((c) + 0i64)
+# define ACC_UINT64_C(c) ((c) + 0ui64)
+# else
+# define ACC_INT64_C(c) (c##i64)
+# define ACC_UINT64_C(c) (c##ui64)
+# endif
+#else
+#endif
+#endif
+#if defined(acc_int64e_t)
+# define ACC_SIZEOF_ACC_INT64E_T 8
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64e_t) == 8)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64e_t) == ACC_SIZEOF_ACC_INT64E_T)
+#endif
+#if !defined(acc_int32l_t)
+#if defined(acc_int32e_t)
+# define acc_int32l_t acc_int32e_t
+# define acc_uint32l_t acc_uint32e_t
+# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
+# define ACC_TYPEOF_ACC_INT32L_T ACC_TYPEOF_ACC_INT32E_T
+#elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
+# define acc_int32l_t int
+# define acc_uint32l_t unsigned int
+# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
+# define ACC_TYPEOF_ACC_INT32L_T ACC_SIZEOF_INT
+#elif (ACC_SIZEOF_LONG >= 4)
+# define acc_int32l_t long int
+# define acc_uint32l_t unsigned long int
+# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
+# define ACC_TYPEOF_ACC_INT32L_T ACC_SIZEOF_LONG
+#else
+# error "acc_int32l_t"
+#endif
+#endif
+#if 1
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32l_t) >= 4)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32l_t) == ACC_SIZEOF_ACC_INT32L_T)
+#endif
+#if !defined(acc_int64l_t)
+#if defined(acc_int64e_t)
+# define acc_int64l_t acc_int64e_t
+# define acc_uint64l_t acc_uint64e_t
+# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
+# define ACC_TYPEOF_ACC_INT64L_T ACC_TYPEOF_ACC_INT64E_T
+#else
+#endif
+#endif
+#if defined(acc_int64l_t)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64l_t) >= 8)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64l_t) == ACC_SIZEOF_ACC_INT64L_T)
+#endif
+#if !defined(acc_int32f_t)
+#if (ACC_SIZEOF_SIZE_T >= 8)
+# define acc_int32f_t acc_int64l_t
+# define acc_uint32f_t acc_uint64l_t
+# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
+# define ACC_TYPEOF_ACC_INT32F_T ACC_TYPEOF_ACC_INT64L_T
+#else
+# define acc_int32f_t acc_int32l_t
+# define acc_uint32f_t acc_uint32l_t
+# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
+# define ACC_TYPEOF_ACC_INT32F_T ACC_TYPEOF_ACC_INT32L_T
+#endif
+#endif
+#if 1
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32f_t) >= 4)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32f_t) == ACC_SIZEOF_ACC_INT32F_T)
+#endif
+#if !defined(acc_int64f_t)
+#if defined(acc_int64l_t)
+# define acc_int64f_t acc_int64l_t
+# define acc_uint64f_t acc_uint64l_t
+# define ACC_SIZEOF_ACC_INT64F_T ACC_SIZEOF_ACC_INT64L_T
+# define ACC_TYPEOF_ACC_INT64F_T ACC_TYPEOF_ACC_INT64L_T
+#else
+#endif
+#endif
+#if defined(acc_int64f_t)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64f_t) >= 8)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64f_t) == ACC_SIZEOF_ACC_INT64F_T)
+#endif
+#if !defined(acc_intptr_t)
+#if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
+# define __ACC_INTPTR_T_IS_POINTER 1
+# if !(ACC_LANG_ASSEMBLER)
+ typedef char * acc_intptr_t;
+ typedef char * acc_uintptr_t;
+# endif
+# define acc_intptr_t acc_intptr_t
+# define acc_uintptr_t acc_uintptr_t
+# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_CHAR_P
+#elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
+# if !(ACC_LANG_ASSEMBLER)
+ typedef __w64 int acc_intptr_t;
+ typedef __w64 unsigned int acc_uintptr_t;
+# endif
+# define acc_intptr_t acc_intptr_t
+# define acc_uintptr_t acc_uintptr_t
+# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_INT
+#elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
+# define acc_intptr_t short
+# define acc_uintptr_t unsigned short
+# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_SHORT
+#elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
+# define acc_intptr_t int
+# define acc_uintptr_t unsigned int
+# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_INT
+#elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
+# define acc_intptr_t long
+# define acc_uintptr_t unsigned long
+# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_LONG
+#elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
+# define acc_intptr_t acc_int64l_t
+# define acc_uintptr_t acc_uint64l_t
+# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_ACC_INT64L_T
+#else
+# error "acc_intptr_t"
+#endif
+#endif
+#if 1
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_intptr_t) >= sizeof(void *))
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
+#endif
+#if !defined(acc_word_t)
+#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE+0 > 0)
+#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !(__ACC_INTPTR_T_IS_POINTER)
+# define acc_word_t acc_uintptr_t
+# define acc_sword_t acc_intptr_t
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_ACC_INTPTR_T
+#elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
+# define acc_word_t unsigned long
+# define acc_sword_t long
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_LONG
+#elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
+# define acc_word_t unsigned int
+# define acc_sword_t int
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_INT
+#elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
+# define acc_word_t unsigned short
+# define acc_sword_t short
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_SHORT
+#elif (ACC_WORDSIZE == 1)
+# define acc_word_t unsigned char
+# define acc_sword_t signed char
+# define ACC_SIZEOF_ACC_WORD_T 1
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_CHAR
+#elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
+# define acc_word_t acc_uint64l_t
+# define acc_sword_t acc_int64l_t
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
+# define ACC_TYPEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
+#elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
+#if 0
+# if !(ACC_LANG_ASSEMBLER)
+ typedef unsigned acc_word_t __attribute__((__mode__(__V16QI__)));
+ typedef int acc_sword_t __attribute__((__mode__(__V16QI__)));
+# endif
+# define acc_word_t acc_word_t
+# define acc_sword_t acc_sword_t
+# define ACC_SIZEOF_ACC_WORD_T 16
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF___MODE_V16QI
+#endif
+#else
+# error "acc_word_t"
+#endif
+#endif
+#endif
+#if 1 && defined(acc_word_t)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_word_t) == ACC_WORDSIZE)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_sword_t) == ACC_WORDSIZE)
+#endif
+#if 1
+#define acc_int8_t signed char
+#define acc_uint8_t unsigned char
+#define ACC_SIZEOF_ACC_INT8_T 1
+#define ACC_TYPEOF_ACC_INT8_T ACC_TYPEOF_CHAR
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int8_t) == 1)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int8_t) == sizeof(acc_uint8_t))
+#endif
+#if defined(acc_int16e_t)
+#define acc_int16_t acc_int16e_t
+#define acc_uint16_t acc_uint16e_t
+#define ACC_SIZEOF_ACC_INT16_T ACC_SIZEOF_ACC_INT16E_T
+#define ACC_TYPEOF_ACC_INT16_T ACC_TYPEOF_ACC_INT16E_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16_t) == 2)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16_t) == sizeof(acc_uint16_t))
+#endif
+#if defined(acc_int32e_t)
+#define acc_int32_t acc_int32e_t
+#define acc_uint32_t acc_uint32e_t
+#define ACC_SIZEOF_ACC_INT32_T ACC_SIZEOF_ACC_INT32E_T
+#define ACC_TYPEOF_ACC_INT32_T ACC_TYPEOF_ACC_INT32E_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32_t) == 4)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32_t) == sizeof(acc_uint32_t))
+#endif
+#if defined(acc_int64e_t)
+#define acc_int64_t acc_int64e_t
+#define acc_uint64_t acc_uint64e_t
+#define ACC_SIZEOF_ACC_INT64_T ACC_SIZEOF_ACC_INT64E_T
+#define ACC_TYPEOF_ACC_INT64_T ACC_TYPEOF_ACC_INT64E_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64_t) == 8)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64_t) == sizeof(acc_uint64_t))
+#endif
+#if 1
+#define acc_int_least32_t acc_int32l_t
+#define acc_uint_least32_t acc_uint32l_t
+#define ACC_SIZEOF_ACC_INT_LEAST32_T ACC_SIZEOF_ACC_INT32L_T
+#define ACC_TYPEOF_ACC_INT_LEAST32_T ACC_TYPEOF_ACC_INT32L_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least32_t) >= 4)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least32_t) == sizeof(acc_uint_least32_t))
+#endif
+#if defined(acc_int64l_t)
+#define acc_int_least64_t acc_int64l_t
+#define acc_uint_least64_t acc_uint64l_t
+#define ACC_SIZEOF_ACC_INT_LEAST64_T ACC_SIZEOF_ACC_INT64L_T
+#define ACC_TYPEOF_ACC_INT_LEAST64_T ACC_TYPEOF_ACC_INT64L_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least64_t) >= 8)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least64_t) == sizeof(acc_uint_least64_t))
+#endif
+#if 1
+#define acc_int_fast32_t acc_int32f_t
+#define acc_uint_fast32_t acc_uint32f_t
+#define ACC_SIZEOF_ACC_INT_FAST32_T ACC_SIZEOF_ACC_INT32F_T
+#define ACC_TYPEOF_ACC_INT_FAST32_T ACC_TYPEOF_ACC_INT32F_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast32_t) >= 4)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast32_t) == sizeof(acc_uint_fast32_t))
+#endif
+#if defined(acc_int64f_t)
+#define acc_int_fast64_t acc_int64f_t
+#define acc_uint_fast64_t acc_uint64f_t
+#define ACC_SIZEOF_ACC_INT_FAST64_T ACC_SIZEOF_ACC_INT64F_T
+#define ACC_TYPEOF_ACC_INT_FAST64_T ACC_TYPEOF_ACC_INT64F_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) >= 8)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) == sizeof(acc_uint_fast64_t))
+#endif
+#if !defined(ACC_INT16_C)
+# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
+# define ACC_INT16_C(c) ((c) + 0)
+# define ACC_UINT16_C(c) ((c) + 0U)
+# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
+# define ACC_INT16_C(c) ((c) + 0L)
+# define ACC_UINT16_C(c) ((c) + 0UL)
+# elif (ACC_SIZEOF_INT >= 2)
+# define ACC_INT16_C(c) (c)
+# define ACC_UINT16_C(c) (c##U)
+# elif (ACC_SIZEOF_LONG >= 2)
+# define ACC_INT16_C(c) (c##L)
+# define ACC_UINT16_C(c) (c##UL)
+# else
+# error "ACC_INT16_C"
+# endif
+#endif
+#if !defined(ACC_INT32_C)
+# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
+# define ACC_INT32_C(c) ((c) + 0)
+# define ACC_UINT32_C(c) ((c) + 0U)
+# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
+# define ACC_INT32_C(c) ((c) + 0L)
+# define ACC_UINT32_C(c) ((c) + 0UL)
+# elif (ACC_SIZEOF_INT >= 4)
+# define ACC_INT32_C(c) (c)
+# define ACC_UINT32_C(c) (c##U)
+# elif (ACC_SIZEOF_LONG >= 4)
+# define ACC_INT32_C(c) (c##L)
+# define ACC_UINT32_C(c) (c##UL)
+# elif (ACC_SIZEOF_LONG_LONG >= 4)
+# define ACC_INT32_C(c) (c##LL)
+# define ACC_UINT32_C(c) (c##ULL)
+# else
+# error "ACC_INT32_C"
+# endif
+#endif
+#if !defined(ACC_INT64_C) && defined(acc_int64l_t)
+# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
+# define ACC_INT64_C(c) ((c) + 0)
+# define ACC_UINT64_C(c) ((c) + 0U)
+# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
+# define ACC_INT64_C(c) ((c) + 0L)
+# define ACC_UINT64_C(c) ((c) + 0UL)
+# elif (ACC_SIZEOF_INT >= 8)
+# define ACC_INT64_C(c) (c)
+# define ACC_UINT64_C(c) (c##U)
+# elif (ACC_SIZEOF_LONG >= 8)
+# define ACC_INT64_C(c) (c##L)
+# define ACC_UINT64_C(c) (c##UL)
+# else
+# error "ACC_INT64_C"
+# endif
+#endif
+#endif
#if (ACC_CFG_NO_CONFIG_HEADER)
#elif defined(ACC_CFG_CONFIG_HEADER)
#else
@@ -1964,12 +3383,12 @@ extern "C" {
#if (ACC_OS_POSIX)
# if (ACC_OS_POSIX_AIX)
# define HAVE_SYS_RESOURCE_H 1
-# elif (ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_MACOSX || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
+# elif (ACC_OS_POSIX_DARWIN || ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
# define HAVE_STRINGS_H 1
# undef HAVE_MALLOC_H
# elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
# define HAVE_ALLOCA_H 1
-# elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
+# elif (ACC_OS_POSIX_DARWIN && ACC_LIBC_MSL)
# undef HAVE_SYS_TIME_H
# undef HAVE_SYS_TYPES_H
# elif (ACC_OS_POSIX_SOLARIS || ACC_OS_POSIX_SUNOS)
@@ -2047,7 +3466,7 @@ extern "C" {
# undef HAVE_UTIME_H
# undef HAVE_SYS_TIME_H
# define HAVE_SYS_UTIME_H 1
-#elif (ACC_CC_INTELC || ACC_CC_MSC)
+#elif (ACC_CC_CLANG_C2 || ACC_CC_CLANG_MSC || ACC_CC_GHS || ACC_CC_INTELC_MSC || ACC_CC_MSC)
# undef HAVE_DIRENT_H
# undef HAVE_UNISTD_H
# undef HAVE_UTIME_H
@@ -2245,7 +3664,7 @@ extern "C" {
#if (ACC_OS_POSIX)
# if (ACC_OS_POSIX_AIX)
# define HAVE_GETRUSAGE 1
-# elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
+# elif (ACC_OS_POSIX_DARWIN && ACC_LIBC_MSL)
# undef HAVE_CHOWN
# undef HAVE_LSTAT
# elif (ACC_OS_POSIX_UNICOS)
@@ -2330,10 +3749,18 @@ extern "C" {
#elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
# undef HAVE_SNPRINTF
# undef HAVE_VSNPRINTF
+#elif (ACC_CC_GHS)
+# undef HAVE_ALLOCA
+# ifndef snprintf
+# define snprintf _snprintf
+# endif
+# ifndef vsnprintf
+# define vsnprintf _vsnprintf
+# endif
#elif (ACC_CC_IBMC)
# undef HAVE_SNPRINTF
# undef HAVE_VSNPRINTF
-#elif (ACC_CC_INTELC)
+#elif (ACC_CC_CLANG_MSC || ACC_CC_INTELC_MSC)
# ifndef snprintf
# define snprintf _snprintf
# endif
@@ -2342,7 +3769,7 @@ extern "C" {
# endif
#elif (ACC_CC_LCCWIN32)
# define utime _utime
-#elif (ACC_CC_MSC)
+#elif (ACC_CC_CLANG_C2 || ACC_CC_MSC)
# if (_MSC_VER < 600)
# undef HAVE_STRFTIME
# endif
@@ -2356,7 +3783,7 @@ extern "C" {
# ifndef vsnprintf
# define vsnprintf _vsnprintf
# endif
-# else
+# elif (_MSC_VER < 1900)
# ifndef snprintf
# define snprintf _snprintf
# endif
@@ -2477,6 +3904,7 @@ extern "C" {
# undef HAVE_ACCESS
# undef HAVE_CHMOD
# undef HAVE_CHOWN
+# undef HAVE_FILENO
# undef HAVE_FSTAT
# undef HAVE_GETTIMEOFDAY
# undef HAVE_LSTAT
@@ -2528,323 +3956,29 @@ extern "C" {
# define RETSIGTYPE void
#endif
#endif
-#if (ACC_CFG_NO_ACC_TYPE_H)
-#else
-#if (ACC_SIZEOF_LONG_LONG+0 > 0)
-__acc_gnuc_extension__ typedef long long acc_llong_t;
-__acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
-#endif
-#if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
-# error "missing defines for sizes"
-#endif
-#if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
-# error "missing defines for sizes"
-#endif
-#if !defined(acc_int16e_t)
-#if (ACC_SIZEOF_LONG == 2)
-# define acc_int16e_t long
-# define acc_uint16e_t unsigned long
-#elif (ACC_SIZEOF_INT == 2)
-# define acc_int16e_t int
-# define acc_uint16e_t unsigned int
-#elif (ACC_SIZEOF_SHORT == 2)
-# define acc_int16e_t short int
-# define acc_uint16e_t unsigned short int
-#elif 1 && !(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM)
- typedef int __acc_int16e_hi_t __attribute__((__mode__(__HI__)));
- typedef unsigned int __acc_uint16e_hi_t __attribute__((__mode__(__HI__)));
-# define acc_int16e_t __acc_int16e_hi_t
-# define acc_uint16e_t __acc_uint16e_hi_t
-#elif (ACC_SIZEOF___INT16 == 2)
-# define acc_int16e_t __int16
-# define acc_uint16e_t unsigned __int16
-#else
-#endif
-#endif
-#if defined(acc_int16e_t)
-# define ACC_SIZEOF_ACC_INT16E_T 2
-#endif
-#if !defined(acc_int32e_t)
-#if (ACC_SIZEOF_LONG == 4)
-# define acc_int32e_t long int
-# define acc_uint32e_t unsigned long int
-#elif (ACC_SIZEOF_INT == 4)
-# define acc_int32e_t int
-# define acc_uint32e_t unsigned int
-#elif (ACC_SIZEOF_SHORT == 4)
-# define acc_int32e_t short int
-# define acc_uint32e_t unsigned short int
-#elif (ACC_SIZEOF_LONG_LONG == 4)
-# define acc_int32e_t acc_llong_t
-# define acc_uint32e_t acc_ullong_t
-#elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
- typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
- typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
-# define acc_int32e_t __acc_int32e_si_t
-# define acc_uint32e_t __acc_uint32e_si_t
-#elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
- typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
- typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
-# define acc_int32e_t __acc_int32e_si_t
-# define acc_uint32e_t __acc_uint32e_si_t
-# define ACC_INT32_C(c) c##LL
-# define ACC_UINT32_C(c) c##ULL
-#elif (ACC_SIZEOF___INT32 == 4)
-# define acc_int32e_t __int32
-# define acc_uint32e_t unsigned __int32
-#else
-#endif
-#endif
-#if defined(acc_int32e_t)
-# define ACC_SIZEOF_ACC_INT32E_T 4
-#endif
-#if !defined(acc_int64e_t)
-#if (ACC_SIZEOF___INT64 == 8)
-# if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
-# define ACC_CFG_TYPE_PREFER___INT64 1
-# endif
-#endif
-#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
-# define acc_int64e_t int
-# define acc_uint64e_t unsigned int
-# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_INT
-#elif (ACC_SIZEOF_LONG == 8)
-# define acc_int64e_t long int
-# define acc_uint64e_t unsigned long int
-# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG
-#elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_TYPE_PREFER___INT64)
-# define acc_int64e_t acc_llong_t
-# define acc_uint64e_t acc_ullong_t
-# if (ACC_CC_BORLANDC)
-# define ACC_INT64_C(c) ((c) + 0ll)
-# define ACC_UINT64_C(c) ((c) + 0ull)
-# else
-# define ACC_INT64_C(c) c##LL
-# define ACC_UINT64_C(c) c##ULL
-# endif
-# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG_LONG
-#elif (ACC_SIZEOF___INT64 == 8)
-# define acc_int64e_t __int64
-# define acc_uint64e_t unsigned __int64
-# if (ACC_CC_BORLANDC)
-# define ACC_INT64_C(c) ((c) + 0i64)
-# define ACC_UINT64_C(c) ((c) + 0ui64)
-# else
-# define ACC_INT64_C(c) c##i64
-# define ACC_UINT64_C(c) c##ui64
-# endif
-# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF___INT64
-#else
-#endif
-#endif
-#if !defined(acc_int32l_t)
-#if defined(acc_int32e_t)
-# define acc_int32l_t acc_int32e_t
-# define acc_uint32l_t acc_uint32e_t
-# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
-#elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
-# define acc_int32l_t int
-# define acc_uint32l_t unsigned int
-# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
-#elif (ACC_SIZEOF_LONG >= 4)
-# define acc_int32l_t long int
-# define acc_uint32l_t unsigned long int
-# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
-#else
-# error "acc_int32l_t"
-#endif
-#endif
-#if !defined(acc_int64l_t)
-#if defined(acc_int64e_t)
-# define acc_int64l_t acc_int64e_t
-# define acc_uint64l_t acc_uint64e_t
-# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
-#else
-#endif
-#endif
-#if !defined(acc_int32f_t)
-#if (ACC_SIZEOF_SIZE_T >= 8)
-# define acc_int32f_t acc_int64l_t
-# define acc_uint32f_t acc_uint64l_t
-# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
-#else
-# define acc_int32f_t acc_int32l_t
-# define acc_uint32f_t acc_uint32l_t
-# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
-#endif
-#endif
-#if !defined(acc_intptr_t)
-#if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
-# define __ACC_INTPTR_T_IS_POINTER 1
- typedef char* acc_intptr_t;
- typedef char* acc_uintptr_t;
-# define acc_intptr_t acc_intptr_t
-# define acc_uintptr_t acc_uintptr_t
-# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
-#elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
- typedef __w64 int acc_intptr_t;
- typedef __w64 unsigned int acc_uintptr_t;
-# define acc_intptr_t acc_intptr_t
-# define acc_uintptr_t acc_uintptr_t
-# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
-#elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
-# define acc_intptr_t short
-# define acc_uintptr_t unsigned short
-# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
-#elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
-# define acc_intptr_t int
-# define acc_uintptr_t unsigned int
-# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
-#elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
-# define acc_intptr_t long
-# define acc_uintptr_t unsigned long
-# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
-#elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
-# define acc_intptr_t acc_int64l_t
-# define acc_uintptr_t acc_uint64l_t
-# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
-#else
-# error "acc_intptr_t"
-#endif
-#endif
-#if !defined(acc_word_t)
-#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
-#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
-# define acc_word_t acc_uintptr_t
-# define acc_sword_t acc_intptr_t
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
-#elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
-# define acc_word_t unsigned long
-# define acc_sword_t long
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
-#elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
-# define acc_word_t unsigned int
-# define acc_sword_t int
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
-#elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
-# define acc_word_t unsigned short
-# define acc_sword_t short
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
-#elif (ACC_WORDSIZE == 1)
-# define acc_word_t unsigned char
-# define acc_sword_t signed char
-# define ACC_SIZEOF_ACC_WORD_T 1
-#elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
-# define acc_word_t acc_uint64l_t
-# define acc_sword_t acc_int64l_t
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
-#elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
-#if 0
- typedef unsigned acc_word_t __attribute__((__mode__(__V16QI__)));
- typedef int acc_sword_t __attribute__((__mode__(__V16QI__)));
-# define acc_word_t acc_word_t
-# define acc_sword_t acc_sword_t
-# define ACC_SIZEOF_ACC_WORD_T 16
-#endif
-#else
-# error "acc_word_t"
-#endif
-#endif
-#endif
-#if !defined(ACC_INT16_C)
-# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
-# define ACC_INT16_C(c) ((c) + 0)
-# define ACC_UINT16_C(c) ((c) + 0U)
-# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
-# define ACC_INT16_C(c) ((c) + 0L)
-# define ACC_UINT16_C(c) ((c) + 0UL)
-# elif (ACC_SIZEOF_INT >= 2)
-# define ACC_INT16_C(c) c
-# define ACC_UINT16_C(c) c##U
-# elif (ACC_SIZEOF_LONG >= 2)
-# define ACC_INT16_C(c) c##L
-# define ACC_UINT16_C(c) c##UL
-# else
-# error "ACC_INT16_C"
-# endif
-#endif
-#if !defined(ACC_INT32_C)
-# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
-# define ACC_INT32_C(c) ((c) + 0)
-# define ACC_UINT32_C(c) ((c) + 0U)
-# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
-# define ACC_INT32_C(c) ((c) + 0L)
-# define ACC_UINT32_C(c) ((c) + 0UL)
-# elif (ACC_SIZEOF_INT >= 4)
-# define ACC_INT32_C(c) c
-# define ACC_UINT32_C(c) c##U
-# elif (ACC_SIZEOF_LONG >= 4)
-# define ACC_INT32_C(c) c##L
-# define ACC_UINT32_C(c) c##UL
-# elif (ACC_SIZEOF_LONG_LONG >= 4)
-# define ACC_INT32_C(c) c##LL
-# define ACC_UINT32_C(c) c##ULL
-# else
-# error "ACC_INT32_C"
-# endif
-#endif
-#if !defined(ACC_INT64_C) && defined(acc_int64l_t)
-# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
-# define ACC_INT64_C(c) ((c) + 0)
-# define ACC_UINT64_C(c) ((c) + 0U)
-# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
-# define ACC_INT64_C(c) ((c) + 0L)
-# define ACC_UINT64_C(c) ((c) + 0UL)
-# elif (ACC_SIZEOF_INT >= 8)
-# define ACC_INT64_C(c) c
-# define ACC_UINT64_C(c) c##U
-# elif (ACC_SIZEOF_LONG >= 8)
-# define ACC_INT64_C(c) c##L
-# define ACC_UINT64_C(c) c##UL
-# else
-# error "ACC_INT64_C"
-# endif
-#endif
-#if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
-# define SIZEOF_ACC_INT16E_T ACC_SIZEOF_ACC_INT16E_T
-#endif
-#if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
-# define SIZEOF_ACC_INT32E_T ACC_SIZEOF_ACC_INT32E_T
-#endif
-#if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
-# define SIZEOF_ACC_INT64E_T ACC_SIZEOF_ACC_INT64E_T
-#endif
-#if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
-# define SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32L_T
-#endif
-#if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
-# define SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64L_T
-#endif
-#if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
-# define SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32F_T
-#endif
-#if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
-# define SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INTPTR_T
-#endif
-#if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
-# define SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_WORD_T
-#endif
+#if !(ACC_LANG_ASSEMBLER)
+#if !(ACC_CFG_SKIP_ACC_TYPES)
#if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
-# define acc_signo_t acc_int32e_t
+# define acc_signo_t acc_int32e_t
#endif
#if !defined(acc_signo_t)
-# define acc_signo_t int
+# define acc_signo_t int
#endif
#if defined(__cplusplus)
extern "C" {
#endif
#if (ACC_BROKEN_CDECL_ALT_SYNTAX)
typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
-#elif defined(RETSIGTYPE)
-typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
#else
typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
#endif
#if defined(__cplusplus)
}
#endif
-# if (ACC_CFG_NO_ACC_UA_H)
-# else
+# if !(ACC_CFG_SKIP_ACC_UA)
+#if !defined(__acc_ua_volatile)
+# define __acc_ua_volatile volatile
+#endif
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
#elif (ACC_CC_INTELC) && defined(_WIN32)
@@ -2865,8 +3999,13 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
#endif
#endif
#if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
+#if 0
#define ACC_UA_GET16(p) (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
#define ACC_UA_SET16(p,v) ((* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint16e_t) (v))
+#else
+#define ACC_UA_GET16(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint16e_t*, __acc_ua_volatile const void*, p))
+#define ACC_UA_SET16(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint16e_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint16e_t, v))
+#endif
#if (ACC_ABI_BIG_ENDIAN)
# define ACC_UA_GET_BE16(p) ACC_UA_GET16(p)
# define ACC_UA_SET_BE16(p,v) ACC_UA_SET16(p,v)
@@ -2874,12 +4013,15 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
# define ACC_UA_GET_LE16(p) ACC_UA_GET16(p)
# define ACC_UA_SET_LE16(p,v) ACC_UA_SET16(p,v)
#endif
-#if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline)
-#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
+#if (__acc_HAVE_forceinline)
+#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
#if !defined(ACC_UA_GET_LE16)
-extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp);
-extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
- __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp;
+__acc_static_forceinline
+#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
+__attribute__((__unused__))
+#endif
+unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
+ __acc_ua_volatile const acc_uint16e_t* p = ACC_STATIC_CAST(__acc_ua_volatile const acc_uint16e_t*, pp);
unsigned long v;
__asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
return v;
@@ -2887,9 +4029,12 @@ extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const
#define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
#endif
#if !defined(ACC_UA_SET_LE16)
-extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v);
-extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
- __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp;
+__acc_static_forceinline
+#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
+__attribute__((__unused__))
+#endif
+void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
+ __acc_ua_volatile acc_uint16e_t* p = ACC_STATIC_CAST(__acc_ua_volatile acc_uint16e_t*, pp);
__asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
}
#define ACC_UA_SET_LE16(p,v) __ACC_UA_SET_LE16(p,v)
@@ -2901,8 +4046,13 @@ extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsi
#endif
#endif
#if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
+#if 0
#define ACC_UA_GET32(p) (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
#define ACC_UA_SET32(p,v) ((* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint32e_t) (v))
+#else
+#define ACC_UA_GET32(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint32e_t*, __acc_ua_volatile const void*, p))
+#define ACC_UA_SET32(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint32e_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint32e_t, v))
+#endif
#if (ACC_ABI_BIG_ENDIAN)
# define ACC_UA_GET_BE32(p) ACC_UA_GET32(p)
# define ACC_UA_SET_BE32(p,v) ACC_UA_SET32(p,v)
@@ -2910,12 +4060,15 @@ extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsi
# define ACC_UA_GET_LE32(p) ACC_UA_GET32(p)
# define ACC_UA_SET_LE32(p,v) ACC_UA_SET32(p,v)
#endif
-#if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline)
-#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
+#if (__acc_HAVE_forceinline)
+#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
#if !defined(ACC_UA_GET_LE32)
-extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp);
-extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
- __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp;
+__acc_static_forceinline
+#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
+__attribute__((__unused__))
+#endif
+unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
+ __acc_ua_volatile const acc_uint32e_t* p = ACC_STATIC_CAST(__acc_ua_volatile const acc_uint32e_t*, pp);
unsigned long v;
__asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
return v;
@@ -2923,9 +4076,12 @@ extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const
#define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
#endif
#if !defined(ACC_UA_SET_LE32)
-extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v);
-extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
- __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp;
+__acc_static_forceinline
+#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
+__attribute__((__unused__))
+#endif
+void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
+ __acc_ua_volatile acc_uint32e_t* p = ACC_STATIC_CAST(__acc_ua_volatile acc_uint32e_t*, pp);
__asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
}
#define ACC_UA_SET_LE32(p,v) __ACC_UA_SET_LE32(p,v)
@@ -2937,8 +4093,13 @@ extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsi
#endif
#endif
#if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
+#if 0
#define ACC_UA_GET64(p) (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
#define ACC_UA_SET64(p,v) ((* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p)) = (acc_uint64l_t) (v))
+#else
+#define ACC_UA_GET64(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint64l_t*, __acc_ua_volatile const void*, p))
+#define ACC_UA_SET64(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint64l_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint64l_t, v))
+#endif
#if (ACC_ABI_BIG_ENDIAN)
# define ACC_UA_GET_BE64(p) ACC_UA_GET64(p)
# define ACC_UA_SET_BE64(p,v) ACC_UA_SET64(p,v)
@@ -2953,325 +4114,490 @@ extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsi
# endif
#endif
#endif
+#endif
#if defined(ACC_WANT_ACC_TYPE_H)
# undef ACC_WANT_ACC_TYPE_H
-# if defined(ACC_CFG_NO_ACC_TYPE_H)
-# error "ACC_WANT_ACC_TYPE_H with ACC_CFG_NO_ACC_TYPE_H"
+# if (ACC_CFG_SKIP_ACC_TYPES)
+# error "ACC_WANT_ACC_TYPE_H with ACC_CFG_SKIP_ACC_TYPES"
# endif
-#if (ACC_SIZEOF_LONG_LONG+0 > 0)
-__acc_gnuc_extension__ typedef long long acc_llong_t;
-__acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
-#endif
#if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
# error "missing defines for sizes"
#endif
#if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
# error "missing defines for sizes"
#endif
+#define ACC_TYPEOF_CHAR 1u
+#define ACC_TYPEOF_SHORT 2u
+#define ACC_TYPEOF_INT 3u
+#define ACC_TYPEOF_LONG 4u
+#define ACC_TYPEOF_LONG_LONG 5u
+#define ACC_TYPEOF___INT8 17u
+#define ACC_TYPEOF___INT16 18u
+#define ACC_TYPEOF___INT32 19u
+#define ACC_TYPEOF___INT64 20u
+#define ACC_TYPEOF___INT128 21u
+#define ACC_TYPEOF___INT256 22u
+#define ACC_TYPEOF___MODE_QI 33u
+#define ACC_TYPEOF___MODE_HI 34u
+#define ACC_TYPEOF___MODE_SI 35u
+#define ACC_TYPEOF___MODE_DI 36u
+#define ACC_TYPEOF___MODE_TI 37u
+#define ACC_TYPEOF_CHAR_P 129u
+#if !defined(acc_llong_t)
+#if (ACC_SIZEOF_LONG_LONG+0 > 0)
+# if !(ACC_LANG_ASSEMBLER)
+ __acc_gnuc_extension__ typedef long long acc_llong_t__;
+ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t__;
+# endif
+# define acc_llong_t acc_llong_t__
+# define acc_ullong_t acc_ullong_t__
+#endif
+#endif
#if !defined(acc_int16e_t)
-#if (ACC_SIZEOF_LONG == 2)
-# define acc_int16e_t long
-# define acc_uint16e_t unsigned long
-#elif (ACC_SIZEOF_INT == 2)
-# define acc_int16e_t int
-# define acc_uint16e_t unsigned int
+#if (ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT) && (ACC_SIZEOF_SHORT != 2)
+# undef ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T
+#endif
+#if (ACC_SIZEOF_LONG == 2) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT)
+# define acc_int16e_t long
+# define acc_uint16e_t unsigned long
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_LONG
+#elif (ACC_SIZEOF_INT == 2) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT)
+# define acc_int16e_t int
+# define acc_uint16e_t unsigned int
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_INT
#elif (ACC_SIZEOF_SHORT == 2)
-# define acc_int16e_t short int
-# define acc_uint16e_t unsigned short int
+# define acc_int16e_t short int
+# define acc_uint16e_t unsigned short int
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_SHORT
#elif 1 && !(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM)
- typedef int __acc_int16e_hi_t __attribute__((__mode__(__HI__)));
- typedef unsigned int __acc_uint16e_hi_t __attribute__((__mode__(__HI__)));
-# define acc_int16e_t __acc_int16e_hi_t
-# define acc_uint16e_t __acc_uint16e_hi_t
+# if !(ACC_LANG_ASSEMBLER)
+ typedef int acc_int16e_hi_t__ __attribute__((__mode__(__HI__)));
+ typedef unsigned int acc_uint16e_hi_t__ __attribute__((__mode__(__HI__)));
+# endif
+# define acc_int16e_t acc_int16e_hi_t__
+# define acc_uint16e_t acc_uint16e_hi_t__
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF___MODE_HI
#elif (ACC_SIZEOF___INT16 == 2)
-# define acc_int16e_t __int16
-# define acc_uint16e_t unsigned __int16
+# define acc_int16e_t __int16
+# define acc_uint16e_t unsigned __int16
+# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF___INT16
#else
#endif
#endif
#if defined(acc_int16e_t)
# define ACC_SIZEOF_ACC_INT16E_T 2
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == 2)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
#endif
#if !defined(acc_int32e_t)
-#if (ACC_SIZEOF_LONG == 4)
-# define acc_int32e_t long int
-# define acc_uint32e_t unsigned long int
+#if (ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T == ACC_TYPEOF_INT) && (ACC_SIZEOF_INT != 4)
+# undef ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T
+#endif
+#if (ACC_SIZEOF_LONG == 4) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T == ACC_TYPEOF_INT)
+# define acc_int32e_t long int
+# define acc_uint32e_t unsigned long int
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG
#elif (ACC_SIZEOF_INT == 4)
-# define acc_int32e_t int
-# define acc_uint32e_t unsigned int
+# define acc_int32e_t int
+# define acc_uint32e_t unsigned int
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_INT
#elif (ACC_SIZEOF_SHORT == 4)
-# define acc_int32e_t short int
-# define acc_uint32e_t unsigned short int
+# define acc_int32e_t short int
+# define acc_uint32e_t unsigned short int
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_SHORT
#elif (ACC_SIZEOF_LONG_LONG == 4)
-# define acc_int32e_t acc_llong_t
-# define acc_uint32e_t acc_ullong_t
+# define acc_int32e_t acc_llong_t
+# define acc_uint32e_t acc_ullong_t
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG_LONG
#elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x025f00ul) || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
- typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
- typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
-# define acc_int32e_t __acc_int32e_si_t
-# define acc_uint32e_t __acc_uint32e_si_t
+# if !(ACC_LANG_ASSEMBLER)
+ typedef int acc_int32e_si_t__ __attribute__((__mode__(__SI__)));
+ typedef unsigned int acc_uint32e_si_t__ __attribute__((__mode__(__SI__)));
+# endif
+# define acc_int32e_t acc_int32e_si_t__
+# define acc_uint32e_t acc_uint32e_si_t__
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___MODE_SI
#elif 1 && !(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
- typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
- typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
-# define acc_int32e_t __acc_int32e_si_t
-# define acc_uint32e_t __acc_uint32e_si_t
-# define ACC_INT32_C(c) c##LL
-# define ACC_UINT32_C(c) c##ULL
+# if !(ACC_LANG_ASSEMBLER)
+ typedef int acc_int32e_si_t__ __attribute__((__mode__(__SI__)));
+ typedef unsigned int acc_uint32e_si_t__ __attribute__((__mode__(__SI__)));
+# endif
+# define acc_int32e_t acc_int32e_si_t__
+# define acc_uint32e_t acc_uint32e_si_t__
+# define ACC_INT32_C(c) (c##LL)
+# define ACC_UINT32_C(c) (c##ULL)
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___MODE_SI
#elif (ACC_SIZEOF___INT32 == 4)
-# define acc_int32e_t __int32
-# define acc_uint32e_t unsigned __int32
+# define acc_int32e_t __int32
+# define acc_uint32e_t unsigned __int32
+# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF___INT32
#else
#endif
#endif
#if defined(acc_int32e_t)
# define ACC_SIZEOF_ACC_INT32E_T 4
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32e_t) == 4)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32e_t) == ACC_SIZEOF_ACC_INT32E_T)
#endif
#if !defined(acc_int64e_t)
#if (ACC_SIZEOF___INT64 == 8)
-# if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
-# define ACC_CFG_TYPE_PREFER___INT64 1
+# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T)
+# define ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
# endif
#endif
+#if (ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF_LONG_LONG) && (ACC_SIZEOF_LONG_LONG != 8)
+# undef ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T
+#endif
+#if (ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64) && (ACC_SIZEOF___INT64 != 8)
+# undef ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T
+#endif
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
-# define acc_int64e_t int
-# define acc_uint64e_t unsigned int
-# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_INT
-#elif (ACC_SIZEOF_LONG == 8)
-# define acc_int64e_t long int
-# define acc_uint64e_t unsigned long int
-# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG
-#elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_TYPE_PREFER___INT64)
-# define acc_int64e_t acc_llong_t
-# define acc_uint64e_t acc_ullong_t
+# define acc_int64e_t int
+# define acc_uint64e_t unsigned int
+# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_INT
+#elif (ACC_SIZEOF_LONG == 8) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF_LONG_LONG) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64)
+# define acc_int64e_t long int
+# define acc_uint64e_t unsigned long int
+# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG
+#elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64)
+# define acc_int64e_t acc_llong_t
+# define acc_uint64e_t acc_ullong_t
+# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
# if (ACC_CC_BORLANDC)
-# define ACC_INT64_C(c) ((c) + 0ll)
-# define ACC_UINT64_C(c) ((c) + 0ull)
+# define ACC_INT64_C(c) ((c) + 0ll)
+# define ACC_UINT64_C(c) ((c) + 0ull)
+# elif 0
+# define ACC_INT64_C(c) (__acc_gnuc_extension__ (c##LL))
+# define ACC_UINT64_C(c) (__acc_gnuc_extension__ (c##ULL))
# else
-# define ACC_INT64_C(c) c##LL
-# define ACC_UINT64_C(c) c##ULL
+# define ACC_INT64_C(c) (c##LL)
+# define ACC_UINT64_C(c) (c##ULL)
# endif
-# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG_LONG
#elif (ACC_SIZEOF___INT64 == 8)
-# define acc_int64e_t __int64
-# define acc_uint64e_t unsigned __int64
+# define acc_int64e_t __int64
+# define acc_uint64e_t unsigned __int64
+# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
# if (ACC_CC_BORLANDC)
-# define ACC_INT64_C(c) ((c) + 0i64)
-# define ACC_UINT64_C(c) ((c) + 0ui64)
+# define ACC_INT64_C(c) ((c) + 0i64)
+# define ACC_UINT64_C(c) ((c) + 0ui64)
# else
-# define ACC_INT64_C(c) c##i64
-# define ACC_UINT64_C(c) c##ui64
+# define ACC_INT64_C(c) (c##i64)
+# define ACC_UINT64_C(c) (c##ui64)
# endif
-# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF___INT64
#else
#endif
#endif
+#if defined(acc_int64e_t)
+# define ACC_SIZEOF_ACC_INT64E_T 8
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64e_t) == 8)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64e_t) == ACC_SIZEOF_ACC_INT64E_T)
+#endif
#if !defined(acc_int32l_t)
#if defined(acc_int32e_t)
-# define acc_int32l_t acc_int32e_t
-# define acc_uint32l_t acc_uint32e_t
+# define acc_int32l_t acc_int32e_t
+# define acc_uint32l_t acc_uint32e_t
# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
+# define ACC_TYPEOF_ACC_INT32L_T ACC_TYPEOF_ACC_INT32E_T
#elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
-# define acc_int32l_t int
-# define acc_uint32l_t unsigned int
+# define acc_int32l_t int
+# define acc_uint32l_t unsigned int
# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
+# define ACC_TYPEOF_ACC_INT32L_T ACC_SIZEOF_INT
#elif (ACC_SIZEOF_LONG >= 4)
-# define acc_int32l_t long int
-# define acc_uint32l_t unsigned long int
+# define acc_int32l_t long int
+# define acc_uint32l_t unsigned long int
# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
+# define ACC_TYPEOF_ACC_INT32L_T ACC_SIZEOF_LONG
#else
# error "acc_int32l_t"
#endif
#endif
+#if 1
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32l_t) >= 4)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32l_t) == ACC_SIZEOF_ACC_INT32L_T)
+#endif
#if !defined(acc_int64l_t)
#if defined(acc_int64e_t)
-# define acc_int64l_t acc_int64e_t
-# define acc_uint64l_t acc_uint64e_t
+# define acc_int64l_t acc_int64e_t
+# define acc_uint64l_t acc_uint64e_t
# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
+# define ACC_TYPEOF_ACC_INT64L_T ACC_TYPEOF_ACC_INT64E_T
#else
#endif
#endif
+#if defined(acc_int64l_t)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64l_t) >= 8)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64l_t) == ACC_SIZEOF_ACC_INT64L_T)
+#endif
#if !defined(acc_int32f_t)
#if (ACC_SIZEOF_SIZE_T >= 8)
-# define acc_int32f_t acc_int64l_t
-# define acc_uint32f_t acc_uint64l_t
+# define acc_int32f_t acc_int64l_t
+# define acc_uint32f_t acc_uint64l_t
# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
+# define ACC_TYPEOF_ACC_INT32F_T ACC_TYPEOF_ACC_INT64L_T
#else
-# define acc_int32f_t acc_int32l_t
-# define acc_uint32f_t acc_uint32l_t
+# define acc_int32f_t acc_int32l_t
+# define acc_uint32f_t acc_uint32l_t
# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
+# define ACC_TYPEOF_ACC_INT32F_T ACC_TYPEOF_ACC_INT32L_T
#endif
#endif
+#if 1
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32f_t) >= 4)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32f_t) == ACC_SIZEOF_ACC_INT32F_T)
+#endif
+#if !defined(acc_int64f_t)
+#if defined(acc_int64l_t)
+# define acc_int64f_t acc_int64l_t
+# define acc_uint64f_t acc_uint64l_t
+# define ACC_SIZEOF_ACC_INT64F_T ACC_SIZEOF_ACC_INT64L_T
+# define ACC_TYPEOF_ACC_INT64F_T ACC_TYPEOF_ACC_INT64L_T
+#else
+#endif
+#endif
+#if defined(acc_int64f_t)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64f_t) >= 8)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64f_t) == ACC_SIZEOF_ACC_INT64F_T)
+#endif
#if !defined(acc_intptr_t)
#if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
# define __ACC_INTPTR_T_IS_POINTER 1
- typedef char* acc_intptr_t;
- typedef char* acc_uintptr_t;
-# define acc_intptr_t acc_intptr_t
-# define acc_uintptr_t acc_uintptr_t
+# if !(ACC_LANG_ASSEMBLER)
+ typedef char * acc_intptr_t;
+ typedef char * acc_uintptr_t;
+# endif
+# define acc_intptr_t acc_intptr_t
+# define acc_uintptr_t acc_uintptr_t
# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_CHAR_P
#elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
- typedef __w64 int acc_intptr_t;
- typedef __w64 unsigned int acc_uintptr_t;
-# define acc_intptr_t acc_intptr_t
-# define acc_uintptr_t acc_uintptr_t
+# if !(ACC_LANG_ASSEMBLER)
+ typedef __w64 int acc_intptr_t;
+ typedef __w64 unsigned int acc_uintptr_t;
+# endif
+# define acc_intptr_t acc_intptr_t
+# define acc_uintptr_t acc_uintptr_t
# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_INT
#elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
-# define acc_intptr_t short
-# define acc_uintptr_t unsigned short
+# define acc_intptr_t short
+# define acc_uintptr_t unsigned short
# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_SHORT
#elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
-# define acc_intptr_t int
-# define acc_uintptr_t unsigned int
+# define acc_intptr_t int
+# define acc_uintptr_t unsigned int
# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_INT
#elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
-# define acc_intptr_t long
-# define acc_uintptr_t unsigned long
+# define acc_intptr_t long
+# define acc_uintptr_t unsigned long
# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_LONG
#elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
-# define acc_intptr_t acc_int64l_t
-# define acc_uintptr_t acc_uint64l_t
+# define acc_intptr_t acc_int64l_t
+# define acc_uintptr_t acc_uint64l_t
# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
+# define ACC_TYPEOF_ACC_INTPTR_T ACC_TYPEOF_ACC_INT64L_T
#else
# error "acc_intptr_t"
#endif
#endif
+#if 1
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_intptr_t) >= sizeof(void *))
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
+#endif
#if !defined(acc_word_t)
-#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
-#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
-# define acc_word_t acc_uintptr_t
-# define acc_sword_t acc_intptr_t
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
+#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE+0 > 0)
+#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !(__ACC_INTPTR_T_IS_POINTER)
+# define acc_word_t acc_uintptr_t
+# define acc_sword_t acc_intptr_t
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_ACC_INTPTR_T
#elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
-# define acc_word_t unsigned long
-# define acc_sword_t long
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
+# define acc_word_t unsigned long
+# define acc_sword_t long
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_LONG
#elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
-# define acc_word_t unsigned int
-# define acc_sword_t int
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
+# define acc_word_t unsigned int
+# define acc_sword_t int
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_INT
#elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
-# define acc_word_t unsigned short
-# define acc_sword_t short
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
+# define acc_word_t unsigned short
+# define acc_sword_t short
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_SHORT
#elif (ACC_WORDSIZE == 1)
-# define acc_word_t unsigned char
-# define acc_sword_t signed char
-# define ACC_SIZEOF_ACC_WORD_T 1
+# define acc_word_t unsigned char
+# define acc_sword_t signed char
+# define ACC_SIZEOF_ACC_WORD_T 1
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF_CHAR
#elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
-# define acc_word_t acc_uint64l_t
-# define acc_sword_t acc_int64l_t
-# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
+# define acc_word_t acc_uint64l_t
+# define acc_sword_t acc_int64l_t
+# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
+# define ACC_TYPEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
#elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
#if 0
+# if !(ACC_LANG_ASSEMBLER)
typedef unsigned acc_word_t __attribute__((__mode__(__V16QI__)));
typedef int acc_sword_t __attribute__((__mode__(__V16QI__)));
-# define acc_word_t acc_word_t
-# define acc_sword_t acc_sword_t
-# define ACC_SIZEOF_ACC_WORD_T 16
+# endif
+# define acc_word_t acc_word_t
+# define acc_sword_t acc_sword_t
+# define ACC_SIZEOF_ACC_WORD_T 16
+# define ACC_TYPEOF_ACC_WORD_T ACC_TYPEOF___MODE_V16QI
#endif
#else
# error "acc_word_t"
#endif
#endif
#endif
+#if 1 && defined(acc_word_t)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_word_t) == ACC_WORDSIZE)
+ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_sword_t) == ACC_WORDSIZE)
+#endif
+#if 1
+#define acc_int8_t signed char
+#define acc_uint8_t unsigned char
+#define ACC_SIZEOF_ACC_INT8_T 1
+#define ACC_TYPEOF_ACC_INT8_T ACC_TYPEOF_CHAR
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int8_t) == 1)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int8_t) == sizeof(acc_uint8_t))
+#endif
+#if defined(acc_int16e_t)
+#define acc_int16_t acc_int16e_t
+#define acc_uint16_t acc_uint16e_t
+#define ACC_SIZEOF_ACC_INT16_T ACC_SIZEOF_ACC_INT16E_T
+#define ACC_TYPEOF_ACC_INT16_T ACC_TYPEOF_ACC_INT16E_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16_t) == 2)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16_t) == sizeof(acc_uint16_t))
+#endif
+#if defined(acc_int32e_t)
+#define acc_int32_t acc_int32e_t
+#define acc_uint32_t acc_uint32e_t
+#define ACC_SIZEOF_ACC_INT32_T ACC_SIZEOF_ACC_INT32E_T
+#define ACC_TYPEOF_ACC_INT32_T ACC_TYPEOF_ACC_INT32E_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32_t) == 4)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int32_t) == sizeof(acc_uint32_t))
+#endif
+#if defined(acc_int64e_t)
+#define acc_int64_t acc_int64e_t
+#define acc_uint64_t acc_uint64e_t
+#define ACC_SIZEOF_ACC_INT64_T ACC_SIZEOF_ACC_INT64E_T
+#define ACC_TYPEOF_ACC_INT64_T ACC_TYPEOF_ACC_INT64E_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64_t) == 8)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int64_t) == sizeof(acc_uint64_t))
+#endif
+#if 1
+#define acc_int_least32_t acc_int32l_t
+#define acc_uint_least32_t acc_uint32l_t
+#define ACC_SIZEOF_ACC_INT_LEAST32_T ACC_SIZEOF_ACC_INT32L_T
+#define ACC_TYPEOF_ACC_INT_LEAST32_T ACC_TYPEOF_ACC_INT32L_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least32_t) >= 4)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least32_t) == sizeof(acc_uint_least32_t))
+#endif
+#if defined(acc_int64l_t)
+#define acc_int_least64_t acc_int64l_t
+#define acc_uint_least64_t acc_uint64l_t
+#define ACC_SIZEOF_ACC_INT_LEAST64_T ACC_SIZEOF_ACC_INT64L_T
+#define ACC_TYPEOF_ACC_INT_LEAST64_T ACC_TYPEOF_ACC_INT64L_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least64_t) >= 8)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_least64_t) == sizeof(acc_uint_least64_t))
+#endif
+#if 1
+#define acc_int_fast32_t acc_int32f_t
+#define acc_uint_fast32_t acc_uint32f_t
+#define ACC_SIZEOF_ACC_INT_FAST32_T ACC_SIZEOF_ACC_INT32F_T
+#define ACC_TYPEOF_ACC_INT_FAST32_T ACC_TYPEOF_ACC_INT32F_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast32_t) >= 4)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast32_t) == sizeof(acc_uint_fast32_t))
+#endif
+#if defined(acc_int64f_t)
+#define acc_int_fast64_t acc_int64f_t
+#define acc_uint_fast64_t acc_uint64f_t
+#define ACC_SIZEOF_ACC_INT_FAST64_T ACC_SIZEOF_ACC_INT64F_T
+#define ACC_TYPEOF_ACC_INT_FAST64_T ACC_TYPEOF_ACC_INT64F_T
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) >= 8)
+ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) == sizeof(acc_uint_fast64_t))
+#endif
#if !defined(ACC_INT16_C)
# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
-# define ACC_INT16_C(c) ((c) + 0)
-# define ACC_UINT16_C(c) ((c) + 0U)
+# define ACC_INT16_C(c) ((c) + 0)
+# define ACC_UINT16_C(c) ((c) + 0U)
# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
-# define ACC_INT16_C(c) ((c) + 0L)
-# define ACC_UINT16_C(c) ((c) + 0UL)
+# define ACC_INT16_C(c) ((c) + 0L)
+# define ACC_UINT16_C(c) ((c) + 0UL)
# elif (ACC_SIZEOF_INT >= 2)
-# define ACC_INT16_C(c) c
-# define ACC_UINT16_C(c) c##U
+# define ACC_INT16_C(c) (c)
+# define ACC_UINT16_C(c) (c##U)
# elif (ACC_SIZEOF_LONG >= 2)
-# define ACC_INT16_C(c) c##L
-# define ACC_UINT16_C(c) c##UL
+# define ACC_INT16_C(c) (c##L)
+# define ACC_UINT16_C(c) (c##UL)
# else
# error "ACC_INT16_C"
# endif
#endif
#if !defined(ACC_INT32_C)
# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
-# define ACC_INT32_C(c) ((c) + 0)
-# define ACC_UINT32_C(c) ((c) + 0U)
+# define ACC_INT32_C(c) ((c) + 0)
+# define ACC_UINT32_C(c) ((c) + 0U)
# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
-# define ACC_INT32_C(c) ((c) + 0L)
-# define ACC_UINT32_C(c) ((c) + 0UL)
+# define ACC_INT32_C(c) ((c) + 0L)
+# define ACC_UINT32_C(c) ((c) + 0UL)
# elif (ACC_SIZEOF_INT >= 4)
-# define ACC_INT32_C(c) c
-# define ACC_UINT32_C(c) c##U
+# define ACC_INT32_C(c) (c)
+# define ACC_UINT32_C(c) (c##U)
# elif (ACC_SIZEOF_LONG >= 4)
-# define ACC_INT32_C(c) c##L
-# define ACC_UINT32_C(c) c##UL
+# define ACC_INT32_C(c) (c##L)
+# define ACC_UINT32_C(c) (c##UL)
# elif (ACC_SIZEOF_LONG_LONG >= 4)
-# define ACC_INT32_C(c) c##LL
-# define ACC_UINT32_C(c) c##ULL
+# define ACC_INT32_C(c) (c##LL)
+# define ACC_UINT32_C(c) (c##ULL)
# else
# error "ACC_INT32_C"
# endif
#endif
#if !defined(ACC_INT64_C) && defined(acc_int64l_t)
# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
-# define ACC_INT64_C(c) ((c) + 0)
-# define ACC_UINT64_C(c) ((c) + 0U)
+# define ACC_INT64_C(c) ((c) + 0)
+# define ACC_UINT64_C(c) ((c) + 0U)
# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
-# define ACC_INT64_C(c) ((c) + 0L)
-# define ACC_UINT64_C(c) ((c) + 0UL)
+# define ACC_INT64_C(c) ((c) + 0L)
+# define ACC_UINT64_C(c) ((c) + 0UL)
# elif (ACC_SIZEOF_INT >= 8)
-# define ACC_INT64_C(c) c
-# define ACC_UINT64_C(c) c##U
+# define ACC_INT64_C(c) (c)
+# define ACC_UINT64_C(c) (c##U)
# elif (ACC_SIZEOF_LONG >= 8)
-# define ACC_INT64_C(c) c##L
-# define ACC_UINT64_C(c) c##UL
+# define ACC_INT64_C(c) (c##L)
+# define ACC_UINT64_C(c) (c##UL)
# else
# error "ACC_INT64_C"
# endif
#endif
-#if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
-# define SIZEOF_ACC_INT16E_T ACC_SIZEOF_ACC_INT16E_T
-#endif
-#if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
-# define SIZEOF_ACC_INT32E_T ACC_SIZEOF_ACC_INT32E_T
-#endif
-#if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
-# define SIZEOF_ACC_INT64E_T ACC_SIZEOF_ACC_INT64E_T
-#endif
-#if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
-# define SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32L_T
-#endif
-#if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
-# define SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64L_T
-#endif
-#if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
-# define SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32F_T
-#endif
-#if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
-# define SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INTPTR_T
-#endif
-#if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
-# define SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_WORD_T
-#endif
#if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
-# define acc_signo_t acc_int32e_t
+# define acc_signo_t acc_int32e_t
#endif
#if !defined(acc_signo_t)
-# define acc_signo_t int
+# define acc_signo_t int
#endif
#if defined(__cplusplus)
extern "C" {
#endif
#if (ACC_BROKEN_CDECL_ALT_SYNTAX)
typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
-#elif defined(RETSIGTYPE)
-typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
#else
typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
#endif
#if defined(__cplusplus)
}
#endif
-# if !defined(ACC_CFG_NO_ACC_UA_H)
+# if !(ACC_CFG_SKIP_ACC_UA)
+#if !defined(__acc_ua_volatile)
+# define __acc_ua_volatile volatile
+#endif
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
#elif (ACC_CC_INTELC) && defined(_WIN32)
@@ -3292,8 +4618,13 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
#endif
#endif
#if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
+#if 0
#define ACC_UA_GET16(p) (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
#define ACC_UA_SET16(p,v) ((* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint16e_t) (v))
+#else
+#define ACC_UA_GET16(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint16e_t*, __acc_ua_volatile const void*, p))
+#define ACC_UA_SET16(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint16e_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint16e_t, v))
+#endif
#if (ACC_ABI_BIG_ENDIAN)
# define ACC_UA_GET_BE16(p) ACC_UA_GET16(p)
# define ACC_UA_SET_BE16(p,v) ACC_UA_SET16(p,v)
@@ -3301,12 +4632,15 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
# define ACC_UA_GET_LE16(p) ACC_UA_GET16(p)
# define ACC_UA_SET_LE16(p,v) ACC_UA_SET16(p,v)
#endif
-#if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline)
-#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
+#if (__acc_HAVE_forceinline)
+#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
#if !defined(ACC_UA_GET_LE16)
-extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp);
-extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
- __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp;
+__acc_static_forceinline
+#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
+__attribute__((__unused__))
+#endif
+unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
+ __acc_ua_volatile const acc_uint16e_t* p = ACC_STATIC_CAST(__acc_ua_volatile const acc_uint16e_t*, pp);
unsigned long v;
__asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
return v;
@@ -3314,9 +4648,12 @@ extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const
#define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
#endif
#if !defined(ACC_UA_SET_LE16)
-extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v);
-extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
- __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp;
+__acc_static_forceinline
+#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
+__attribute__((__unused__))
+#endif
+void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
+ __acc_ua_volatile acc_uint16e_t* p = ACC_STATIC_CAST(__acc_ua_volatile acc_uint16e_t*, pp);
__asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
}
#define ACC_UA_SET_LE16(p,v) __ACC_UA_SET_LE16(p,v)
@@ -3328,8 +4665,13 @@ extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsi
#endif
#endif
#if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
+#if 0
#define ACC_UA_GET32(p) (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
#define ACC_UA_SET32(p,v) ((* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p)) = (acc_uint32e_t) (v))
+#else
+#define ACC_UA_GET32(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint32e_t*, __acc_ua_volatile const void*, p))
+#define ACC_UA_SET32(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint32e_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint32e_t, v))
+#endif
#if (ACC_ABI_BIG_ENDIAN)
# define ACC_UA_GET_BE32(p) ACC_UA_GET32(p)
# define ACC_UA_SET_BE32(p,v) ACC_UA_SET32(p,v)
@@ -3337,12 +4679,15 @@ extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsi
# define ACC_UA_GET_LE32(p) ACC_UA_GET32(p)
# define ACC_UA_SET_LE32(p,v) ACC_UA_SET32(p,v)
#endif
-#if !(ACC_CFG_NO_INLINE_ASM) && (__acc_HAVE_forceinline)
-#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
+#if (__acc_HAVE_forceinline)
+#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
#if !defined(ACC_UA_GET_LE32)
-extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp);
-extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
- __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp;
+__acc_static_forceinline
+#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
+__attribute__((__unused__))
+#endif
+unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
+ __acc_ua_volatile const acc_uint32e_t* p = ACC_STATIC_CAST(__acc_ua_volatile const acc_uint32e_t*, pp);
unsigned long v;
__asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
return v;
@@ -3350,9 +4695,12 @@ extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const
#define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
#endif
#if !defined(ACC_UA_SET_LE32)
-extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v);
-extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
- __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp;
+__acc_static_forceinline
+#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
+__attribute__((__unused__))
+#endif
+void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
+ __acc_ua_volatile acc_uint32e_t* p = ACC_STATIC_CAST(__acc_ua_volatile acc_uint32e_t*, pp);
__asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
}
#define ACC_UA_SET_LE32(p,v) __ACC_UA_SET_LE32(p,v)
@@ -3364,8 +4712,13 @@ extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsi
#endif
#endif
#if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
+#if 0
#define ACC_UA_GET64(p) (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
#define ACC_UA_SET64(p,v) ((* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p)) = (acc_uint64l_t) (v))
+#else
+#define ACC_UA_GET64(p) (* ACC_STATIC_CAST2(__acc_ua_volatile const acc_uint64l_t*, __acc_ua_volatile const void*, p))
+#define ACC_UA_SET64(p,v) (* ACC_STATIC_CAST2(__acc_ua_volatile acc_uint64l_t*, __acc_ua_volatile void*, p) = ACC_ITRUNC(acc_uint64l_t, v))
+#endif
#if (ACC_ABI_BIG_ENDIAN)
# define ACC_UA_GET_BE64(p) ACC_UA_GET64(p)
# define ACC_UA_SET_BE64(p,v) ACC_UA_SET64(p,v)
@@ -3432,58 +4785,56 @@ typedef unsigned short wchar_t;
#endif
#endif
#elif (ACC_LIBC_FREESTANDING)
-# if HAVE_STDDEF_H
+# if defined(HAVE_STDDEF_H) && (HAVE_STDDEF_H+0)
# include <stddef.h>
# endif
-# if HAVE_STDINT_H
+# if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
# include <stdint.h>
# endif
#elif (ACC_LIBC_MOSTLY_FREESTANDING)
-# if HAVE_STDIO_H
+# if defined(HAVE_STDIO_H) && (HAVE_STDIO_H+0)
# include <stdio.h>
# endif
-# if HAVE_STDDEF_H
+# if defined(HAVE_STDDEF_H) && (HAVE_STDDEF_H+0)
# include <stddef.h>
# endif
-# if HAVE_STDINT_H
+# if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
# include <stdint.h>
# endif
#else
#include <stdio.h>
-#if (HAVE_TIME_H) && defined(__MSL__) && defined(__cplusplus)
+#if defined(HAVE_TIME_H) && (HAVE_TIME_H+0) && defined(__MSL__) && defined(__cplusplus)
# include <time.h>
#endif
-#if HAVE_SYS_TYPES_H
+#if defined(HAVE_SYS_TYPES_H) && (HAVE_SYS_TYPES_H+0)
# include <sys/types.h>
#endif
-#if HAVE_SYS_STAT_H
+#if defined(HAVE_SYS_STAT_H) && (HAVE_SYS_STAT_H+0)
# include <sys/stat.h>
#endif
-#if STDC_HEADERS
+#if defined(STDC_HEADERS) && (STDC_HEADERS+0)
+# include <stdlib.h>
+#elif defined(HAVE_STDLIB_H) && (HAVE_STDLIB_H+0)
# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
+#include <stddef.h>
+#if defined(HAVE_STRING_H) && (HAVE_STRING_H+0)
+# if defined(STDC_HEADERS) && (STDC_HEADERS+0)
+# elif defined(HAVE_MEMORY_H) && (HAVE_MEMORY_H+0)
# include <memory.h>
# endif
# include <string.h>
#endif
-#if HAVE_STRINGS_H
+#if defined(HAVE_STRINGS_H) && (HAVE_STRINGS_H+0)
# include <strings.h>
#endif
-#if HAVE_INTTYPES_H
+#if defined(HAVE_INTTYPES_H) && (HAVE_INTTYPES_H+0)
# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
#endif
-#if HAVE_UNISTD_H
+#if defined(HAVE_STDINT_H) && (HAVE_STDINT_H+0)
+# include <stdint.h>
+#endif
+#if defined(HAVE_UNISTD_H) && (HAVE_UNISTD_H+0)
# include <unistd.h>
#endif
#endif
@@ -3527,7 +4878,7 @@ typedef unsigned short wchar_t;
#if (HAVE_SIGNAL_H)
# include <signal.h>
#endif
-#if (TIME_WITH_SYS_TIME)
+#if (HAVE_SYS_TIME_H && HAVE_TIME_H)
# include <sys/time.h>
# include <time.h>
#elif (HAVE_TIME_H)
@@ -3658,27 +5009,10 @@ typedef unsigned short wchar_t;
# define ACCLIB_EXTERN_NOINLINE(r,f) extern r __ACCLIB_FUNCNAME(f)
# endif
#endif
-#if !defined(__ACCLIB_CONST_CAST_RETURN)
-#if 1 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (acc_uintptr_t) (var);
-#elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
-# define __ACCLIB_CONST_CAST_RETURN(type,var) \
- { union { type a; const type b; } u; u.b = (var); return u.a; }
-#else
-# define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (var);
-#endif
-#endif
-#if (ACC_OS_WIN64)
-# define acclib_handle_t acc_int64l_t
-# define acclib_uhandle_t acc_uint64l_t
-#elif (ACC_ARCH_I386 && ACC_CC_MSC && (_MSC_VER >= 1300))
- typedef __w64 long acclib_handle_t;
- typedef __w64 unsigned long acclib_uhandle_t;
-# define acclib_handle_t acclib_handle_t
-# define acclib_uhandle_t acclib_uhandle_t
-#else
+#if (ACC_SIZEOF_LONG > ACC_SIZEOF_VOID_P)
# define acclib_handle_t long
-# define acclib_uhandle_t unsigned long
+#else
+# define acclib_handle_t acc_intptr_t
#endif
#if 0
ACCLIB_EXTERN(int, acc_ascii_digit) (int);
@@ -3689,13 +5023,13 @@ ACCLIB_EXTERN(int, acc_ascii_toupper) (int);
ACCLIB_EXTERN(int, acc_ascii_utolower) (int);
ACCLIB_EXTERN(int, acc_ascii_utoupper) (int);
#endif
-#define acc_ascii_isdigit(c) (((unsigned)(c) - 48) < 10)
-#define acc_ascii_islower(c) (((unsigned)(c) - 97) < 26)
-#define acc_ascii_isupper(c) (((unsigned)(c) - 65) < 26)
-#define acc_ascii_tolower(c) ((int)(c) + (acc_ascii_isupper(c) << 5))
-#define acc_ascii_toupper(c) ((int)(c) - (acc_ascii_islower(c) << 5))
-#define acc_ascii_utolower(c) acc_ascii_tolower((unsigned char)(c))
-#define acc_ascii_utoupper(c) acc_ascii_toupper((unsigned char)(c))
+#define acc_ascii_isdigit(c) ((ACC_ICAST(unsigned, c) - 48) < 10)
+#define acc_ascii_islower(c) ((ACC_ICAST(unsigned, c) - 97) < 26)
+#define acc_ascii_isupper(c) ((ACC_ICAST(unsigned, c) - 65) < 26)
+#define acc_ascii_tolower(c) (ACC_ICAST(int, c) + (acc_ascii_isupper(c) << 5))
+#define acc_ascii_toupper(c) (ACC_ICAST(int, c) - (acc_ascii_islower(c) << 5))
+#define acc_ascii_utolower(c) acc_ascii_tolower(ACC_ITRUNC(unsigned char, c))
+#define acc_ascii_utoupper(c) acc_ascii_toupper(ACC_ITRUNC(unsigned char, c))
#ifndef acc_hsize_t
#if (ACC_HAVE_MM_HUGE_PTR)
# define acc_hsize_t unsigned long
@@ -3885,7 +5219,7 @@ ACCLIB_EXTERN(int, acc_closedir) (acc_dir_p);
# define acc_alloca(x) __builtin_alloca((x))
#elif (ACC_CC_BORLANDC || ACC_CC_LCC) && defined(__linux__)
#elif (HAVE_ALLOCA)
-# define acc_alloca(x) ((void *) (alloca((x))))
+# define acc_alloca(x) ACC_STATIC_CAST(void *, alloca((x)))
#endif
#if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
# define acc_stackavail() stackavail()
@@ -3912,7 +5246,7 @@ ACCLIB_EXTERN(int, acc_closedir) (acc_dir_p);
#elif (ACC_ARCH_I086 && ACC_CC_ZORTECHC)
# define acc_stackavail() _chkstack()
#endif
-ACCLIB_EXTERN(acclib_handle_t, acc_get_osfhandle) (int);
+ACCLIB_EXTERN(acc_intptr_t, acc_get_osfhandle) (int);
ACCLIB_EXTERN(const char *, acc_getenv) (const char *);
ACCLIB_EXTERN(int, acc_isatty) (int);
ACCLIB_EXTERN(int, acc_mkdir) (const char*, unsigned);
@@ -3930,47 +5264,8 @@ ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_query) (void);
ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_enable) (int);
ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_qemu) (void);
ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void);
-#if !defined(acc_int64l_t) || (ACC_CFG_NO_DOUBLE)
-# undef __ACCLIB_PCLOCK_USE_RDTSC
-# undef __ACCLIB_PCLOCK_USE_PERFCTR
-# undef __ACCLIB_UCLOCK_USE_RDTSC
-# undef __ACCLIB_UCLOCK_USE_PERFCTR
-#else
-typedef struct {
- void* h;
- int mode;
- double tsc_to_seconds;
- unsigned cpu_type, cpu_features, cpu_khz, cpu_nrctrs;
- const char* cpu_name;
-} acc_perfctr_handle_t;
-typedef struct {
- acc_uint64l_t tsc;
-#if (ACC_OS_POSIX_LINUX)
- acc_uint64l_t pmc[18];
-#else
- acc_uint64l_t pmc[1];
-#endif
-} acc_perfctr_clock_t;
-#ifndef acc_perfctr_handle_p
-#define acc_perfctr_handle_p acc_perfctr_handle_t *
-#endif
-#ifndef acc_perfctr_clock_p
-#define acc_perfctr_clock_p acc_perfctr_clock_t *
-#endif
-ACCLIB_EXTERN(int, acc_perfctr_open) (acc_perfctr_handle_p);
-ACCLIB_EXTERN(int, acc_perfctr_close) (acc_perfctr_handle_p);
-ACCLIB_EXTERN(void, acc_perfctr_read) (acc_perfctr_handle_p, acc_perfctr_clock_p);
-#if !(ACC_CFG_NO_DOUBLE)
-ACCLIB_EXTERN(double, acc_perfctr_get_elapsed) (acc_perfctr_handle_p, const acc_perfctr_clock_p, const acc_perfctr_clock_p);
-ACCLIB_EXTERN(double, acc_perfctr_get_elapsed_tsc) (acc_perfctr_handle_p, acc_uint64l_t);
-#endif
-ACCLIB_EXTERN(int, acc_perfctr_flush_cpu_cache) (acc_perfctr_handle_p, unsigned);
-#endif
#if defined(acc_int32e_t)
ACCLIB_EXTERN(int, acc_tsc_read) (acc_uint32e_t*);
-#else
-# undef __ACCLIB_PCLOCK_USE_RDTSC
-# undef __ACCLIB_UCLOCK_USE_RDTSC
#endif
struct acc_pclock_handle_t;
struct acc_pclock_t;
@@ -3986,18 +5281,16 @@ typedef struct acc_pclock_t acc_pclock_t;
#define ACC_PCLOCK_MONOTONIC 1
#define ACC_PCLOCK_PROCESS_CPUTIME_ID 2
#define ACC_PCLOCK_THREAD_CPUTIME_ID 3
+typedef int (*acc_pclock_gettime_t) (acc_pclock_handle_p, acc_pclock_p);
struct acc_pclock_handle_t {
acclib_handle_t h;
int mode;
int read_error;
const char* name;
- int (*gettime) (acc_pclock_handle_p, acc_pclock_p);
+ acc_pclock_gettime_t gettime;
#if defined(acc_int64l_t)
acc_uint64l_t ticks_base;
#endif
-#if (__ACCLIB_PCLOCK_USE_PERFCTR)
- acc_perfctr_handle_t pch;
-#endif
};
struct acc_pclock_t {
#if defined(acc_int64l_t)
@@ -4016,60 +5309,6 @@ ACCLIB_EXTERN(void, acc_pclock_read) (acc_pclock_handle_p, acc_pclock_p);
ACCLIB_EXTERN(double, acc_pclock_get_elapsed) (acc_pclock_handle_p, const acc_pclock_p, const acc_pclock_p);
#endif
ACCLIB_EXTERN(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p, unsigned);
-#if !defined(acc_int64l_t) || (ACC_CFG_NO_DOUBLE)
-# undef __ACCLIB_UCLOCK_USE_QPC
-#elif (ACC_OS_CYGWIN || ACC_OS_EMX || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
-# define __ACCLIB_UCLOCK_USE_QPC 1
-#else
-# undef __ACCLIB_UCLOCK_USE_QPC
-#endif
-typedef struct {
- acclib_handle_t h;
- int mode;
- int read_error;
- const char* name;
-#if (__ACCLIB_UCLOCK_USE_PERFCTR)
- acc_perfctr_handle_t pch;
-#endif
-#if (__ACCLIB_UCLOCK_USE_QPC)
- double qpf;
-#endif
-} acc_uclock_handle_t;
-typedef struct {
- union {
- acc_uint32l_t t32;
-#if !(ACC_OS_DOS16 || ACC_OS_WIN16)
-# if !(ACC_CFG_NO_DOUBLE)
- double td;
-# endif
-# if defined(acc_int64l_t)
- acc_int64l_t t64;
-# endif
-#endif
- } ticks;
-#if (__ACCLIB_UCLOCK_USE_RDTSC)
- acc_uint64l_t tsc;
-#endif
-#if (__ACCLIB_UCLOCK_USE_PERFCTR)
- acc_perfctr_clock_t pcc;
-#endif
-#if (__ACCLIB_UCLOCK_USE_QPC)
- acc_int64l_t qpc;
-#endif
-} acc_uclock_t;
-#ifndef acc_uclock_handle_p
-#define acc_uclock_handle_p acc_uclock_handle_t *
-#endif
-#ifndef acc_uclock_p
-#define acc_uclock_p acc_uclock_t *
-#endif
-ACCLIB_EXTERN(int, acc_uclock_open) (acc_uclock_handle_p);
-ACCLIB_EXTERN(int, acc_uclock_close) (acc_uclock_handle_p);
-ACCLIB_EXTERN(void, acc_uclock_read) (acc_uclock_handle_p, acc_uclock_p);
-#if !(ACC_CFG_NO_DOUBLE)
-ACCLIB_EXTERN(double, acc_uclock_get_elapsed) (acc_uclock_handle_p, const acc_uclock_p, const acc_uclock_p);
-#endif
-ACCLIB_EXTERN(int, acc_uclock_flush_cpu_cache) (acc_uclock_handle_p, unsigned);
struct acc_getopt_t;
typedef struct acc_getopt_t acc_getopt_t;
#ifndef acc_getopt_p
@@ -4086,12 +5325,13 @@ struct acc_getopt_longopt_t {
int* flag;
int val;
};
+typedef void (*acc_getopt_opterr_t)(acc_getopt_p, const char*, void *);
struct acc_getopt_t {
void *user;
const char *progname;
int bad_option;
char *optarg;
- void (*opterr)(acc_getopt_p, const char*, void *);
+ acc_getopt_opterr_t opterr;
int optind;
int optopt;
int errcount;
@@ -4173,6 +5413,7 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
#if defined(ACC_CXX_NOTHROW)
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul))
#elif (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
+#elif (ACC_CC_GHS && !defined(__EXCEPTIONS))
#elif (ACC_CC_HIGHC)
#elif (ACC_CC_MSC && (_MSC_VER < 1100))
#elif (ACC_CC_NDPC)
@@ -4180,13 +5421,13 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
#elif (ACC_CC_WATCOMC && !defined(_CPPUNWIND))
#elif (ACC_CC_ZORTECHC)
#else
-# define ACC_CXX_NOTHROW throw()
+# define ACC_CXX_NOTHROW throw()
#endif
#if !defined(ACC_CXX_NOTHROW)
-# define ACC_CXX_NOTHROW /*empty*/
+# define ACC_CXX_NOTHROW /*empty*/
#endif
#if defined(__ACC_CXX_DO_NEW)
-#elif (ACC_CC_NDPC || ACC_CC_PGI)
+#elif (ACC_CC_GHS || ACC_CC_NDPC || ACC_CC_PGI)
# define __ACC_CXX_DO_NEW { return 0; }
#elif ((ACC_CC_BORLANDC || ACC_CC_TURBOC) && ACC_ARCH_I086)
# define __ACC_CXX_DO_NEW { return 0; }
@@ -4254,7 +5495,7 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
#if defined(ACC_CXX_TRIGGER_FUNCTION_IMPL)
#else
# define ACC_CXX_TRIGGER_FUNCTION_IMPL(klass) \
- const void* klass::acc_cxx_trigger_function() const { return 0; }
+ const void* klass::acc_cxx_trigger_function() const { return ACC_STATIC_CAST(const void *, 0); }
#endif
#endif
#endif
@@ -4266,9 +5507,9 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
#endif
#if !defined(ACCCHK_ASSERT_SIGN_T)
# define ACCCHK_ASSERT_SIGN_T(type,relop) \
- ACCCHK_ASSERT( (type) (-1) relop (type) 0 ) \
- ACCCHK_ASSERT( (type) (~(type)0) relop (type) 0 ) \
- ACCCHK_ASSERT( (type) (~(type)0) == (type) (-1) )
+ ACCCHK_ASSERT( ACC_STATIC_CAST(type, -1) relop ACC_STATIC_CAST(type, 0)) \
+ ACCCHK_ASSERT( ACC_STATIC_CAST(type, ~ACC_STATIC_CAST(type, 0)) relop ACC_STATIC_CAST(type, 0)) \
+ ACCCHK_ASSERT( ACC_STATIC_CAST(type, ~ACC_STATIC_CAST(type, 0)) == ACC_STATIC_CAST(type, -1))
#endif
#if !defined(ACCCHK_ASSERT_IS_SIGNED_T)
# define ACCCHK_ASSERT_IS_SIGNED_T(type) ACCCHK_ASSERT_SIGN_T(type,<)
@@ -4276,21 +5517,35 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
#if !defined(ACCCHK_ASSERT_IS_UNSIGNED_T)
# if (ACC_BROKEN_INTEGRAL_PROMOTION)
# define ACCCHK_ASSERT_IS_UNSIGNED_T(type) \
- ACCCHK_ASSERT( (type) (-1) > (type) 0 )
+ ACCCHK_ASSERT( ACC_STATIC_CAST(type, -1) > ACC_STATIC_CAST(type, 0) )
# else
# define ACCCHK_ASSERT_IS_UNSIGNED_T(type) ACCCHK_ASSERT_SIGN_T(type,>)
# endif
#endif
+#if defined(ACCCHK_CFG_PEDANTIC)
#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550) && (__BORLANDC__ < 0x0560))
# pragma option push -w-8055
#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0550))
# pragma option push -w-osh
#endif
+#endif
#if (ACC_0xffffffffL - ACC_UINT32_C(4294967294) != 1)
-# error "preprocessor error 1"
+# error "preprocessor error"
#endif
#if (ACC_0xffffffffL - ACC_UINT32_C(0xfffffffd) != 2)
-# error "preprocessor error 2"
+# error "preprocessor error"
+#endif
+#if +0
+# error "preprocessor error"
+#endif
+#if -0
+# error "preprocessor error"
+#endif
+#if +0 != 0
+# error "preprocessor error"
+#endif
+#if -0 != 0
+# error "preprocessor error"
#endif
#define ACCCHK_VAL 1
#define ACCCHK_TMP1 ACCCHK_VAL
@@ -4324,44 +5579,77 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
# endif
#endif
ACCCHK_ASSERT(1 == 1)
- ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3)
- ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255)
-#if (SIZEOF_INT >= 2)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(1u,1) == 1u)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3u)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(1u,3) == 7u)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255u)
+#if (ACC_SIZEOF_INT >= 2)
ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU)
-#else
- ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(0u,16) == 0u)
#endif
-#if (SIZEOF_INT >= 4)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,16) == 0ul)
+#if (ACC_SIZEOF_INT >= 4)
ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,32) == 0xffffffffU)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(0u,32) == 0u)
#endif
-#if (SIZEOF_LONG >= 4)
+#if (ACC_SIZEOF_LONG >= 4)
ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,32) == 0xffffffffUL)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,32) == 0ul)
#endif
-#if (SIZEOF_LONG >= 8)
+#if (ACC_SIZEOF_LONG >= 8)
ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,64) == 0xffffffffffffffffUL)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,64) == 0ul)
#endif
#if !(ACC_BROKEN_INTEGRAL_PROMOTION)
- ACCCHK_ASSERT(__ACC_MASK_GEN(1u,SIZEOF_INT*8) == ~0u)
- ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,SIZEOF_LONG*8) == ~0ul)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(1u,ACC_SIZEOF_INT*8) == ~0u)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,ACC_SIZEOF_LONG*8) == ~0ul)
+#endif
+#if 1
+ ACCCHK_ASSERT(__ACC_MASK_GEN(0,0) == 0)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(1,0) == 0)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(2,0) == 0)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(4,0) == 0)
+#endif
+#if 1
+ ACCCHK_ASSERT(__ACC_MASK_GEN(2,1) == 2)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(4,1) == 4)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(8,1) == 8)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(2,2) == 2+4)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(4,2) == 4+8)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(8,2) == 8+16)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(2,3) == 2+4+8)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(4,3) == 4+8+16)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(8,3) == 8+16+32)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(7,1) == 7)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(7,2) == 7+14)
+ ACCCHK_ASSERT(__ACC_MASK_GEN(7,3) == 7+14+28)
#endif
#if !(ACC_BROKEN_SIGNED_RIGHT_SHIFT)
ACCCHK_ASSERT(((-1) >> 7) == -1)
#endif
ACCCHK_ASSERT(((1) >> 7) == 0)
+#if (ACC_CC_INTELC && (__INTEL_COMPILER >= 900))
+# pragma warning(push)
+# pragma warning(disable: 1025)
+#endif
ACCCHK_ASSERT((~0l & ~0) == ~0l)
ACCCHK_ASSERT((~0l & ~0u) == ~0u)
ACCCHK_ASSERT((~0ul & ~0) == ~0ul)
ACCCHK_ASSERT((~0ul & ~0u) == ~0u)
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
-#elif (SIZEOF_INT == 2)
+#elif (ACC_SIZEOF_INT == 2)
ACCCHK_ASSERT((~0l & ~0u) == 0xffffU)
ACCCHK_ASSERT((~0ul & ~0u) == 0xffffU)
-#elif (SIZEOF_INT == 4)
+#elif (ACC_SIZEOF_INT == 4)
ACCCHK_ASSERT((~0l & ~0u) == 0xffffffffU)
ACCCHK_ASSERT((~0ul & ~0u) == 0xffffffffU)
#endif
+#if (ACC_CC_INTELC && (__INTEL_COMPILER >= 900))
+# pragma warning(pop)
+#endif
ACCCHK_ASSERT_IS_SIGNED_T(signed char)
ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned char)
ACCCHK_ASSERT(sizeof(signed char) == sizeof(char))
@@ -4369,7 +5657,7 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT(sizeof(char) == 1)
#if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
#else
- ACCCHK_ASSERT(sizeof(char) == sizeof((char)0))
+ ACCCHK_ASSERT(sizeof(char) == sizeof(ACC_STATIC_CAST(char, 0)))
#endif
#if defined(__cplusplus)
ACCCHK_ASSERT(sizeof('\0') == sizeof(char))
@@ -4401,10 +5689,10 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT(sizeof(short) >= sizeof(char))
#if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
#else
- ACCCHK_ASSERT(sizeof(short) == sizeof((short)0))
+ ACCCHK_ASSERT(sizeof(short) == sizeof(ACC_STATIC_CAST(short, 0)))
#endif
-#if (SIZEOF_SHORT > 0)
- ACCCHK_ASSERT(sizeof(short) == SIZEOF_SHORT)
+#if (ACC_SIZEOF_SHORT > 0)
+ ACCCHK_ASSERT(sizeof(short) == ACC_SIZEOF_SHORT)
#endif
ACCCHK_ASSERT_IS_SIGNED_T(int)
ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned int)
@@ -4414,9 +5702,9 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
#endif
ACCCHK_ASSERT(sizeof(int) >= sizeof(short))
ACCCHK_ASSERT(sizeof(int) == sizeof(0))
- ACCCHK_ASSERT(sizeof(int) == sizeof((int)0))
-#if (SIZEOF_INT > 0)
- ACCCHK_ASSERT(sizeof(int) == SIZEOF_INT)
+ ACCCHK_ASSERT(sizeof(int) == sizeof(ACC_STATIC_CAST(int, 0)))
+#if (ACC_SIZEOF_INT > 0)
+ ACCCHK_ASSERT(sizeof(int) == ACC_SIZEOF_INT)
#endif
ACCCHK_ASSERT(sizeof(0) == sizeof(int))
ACCCHK_ASSERT_IS_SIGNED_T(long)
@@ -4427,33 +5715,33 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
#endif
ACCCHK_ASSERT(sizeof(long) >= sizeof(int))
ACCCHK_ASSERT(sizeof(long) == sizeof(0L))
- ACCCHK_ASSERT(sizeof(long) == sizeof((long)0))
-#if (SIZEOF_LONG > 0)
- ACCCHK_ASSERT(sizeof(long) == SIZEOF_LONG)
+ ACCCHK_ASSERT(sizeof(long) == sizeof(ACC_STATIC_CAST(long, 0)))
+#if (ACC_SIZEOF_LONG > 0)
+ ACCCHK_ASSERT(sizeof(long) == ACC_SIZEOF_LONG)
#endif
ACCCHK_ASSERT(sizeof(0L) == sizeof(long))
ACCCHK_ASSERT_IS_UNSIGNED_T(size_t)
ACCCHK_ASSERT(sizeof(size_t) >= sizeof(int))
ACCCHK_ASSERT(sizeof(size_t) == sizeof(sizeof(0)))
-#if (SIZEOF_SIZE_T > 0)
- ACCCHK_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T)
+#if (ACC_SIZEOF_SIZE_T > 0)
+ ACCCHK_ASSERT(sizeof(size_t) == ACC_SIZEOF_SIZE_T)
#endif
ACCCHK_ASSERT_IS_SIGNED_T(ptrdiff_t)
ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
#if !(ACC_BROKEN_SIZEOF)
- ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof((char*)0 - (char*)0))
+ ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(ACC_STATIC_CAST(char*, 0) - ACC_STATIC_CAST(char*, 0)))
# if (ACC_HAVE_MM_HUGE_PTR)
- ACCCHK_ASSERT(4 == sizeof((char __huge*)0 - (char __huge*)0))
+ ACCCHK_ASSERT(4 == sizeof(ACC_STATIC_CAST(char __huge*, 0) - ACC_STATIC_CAST(char __huge*, 0)))
# endif
#endif
-#if (SIZEOF_PTRDIFF_T > 0)
- ACCCHK_ASSERT(sizeof(ptrdiff_t) == SIZEOF_PTRDIFF_T)
+#if (ACC_SIZEOF_PTRDIFF_T > 0)
+ ACCCHK_ASSERT(sizeof(ptrdiff_t) == ACC_SIZEOF_PTRDIFF_T)
#endif
ACCCHK_ASSERT(sizeof(void*) >= sizeof(char*))
-#if (SIZEOF_VOID_P > 0)
- ACCCHK_ASSERT(sizeof(void*) == SIZEOF_VOID_P)
- ACCCHK_ASSERT(sizeof(char*) == SIZEOF_VOID_P)
+#if (ACC_SIZEOF_VOID_P > 0)
+ ACCCHK_ASSERT(sizeof(void*) == ACC_SIZEOF_VOID_P)
+ ACCCHK_ASSERT(sizeof(char*) == ACC_SIZEOF_VOID_P)
#endif
#if (ACC_HAVE_MM_HUGE_PTR)
ACCCHK_ASSERT(4 == sizeof(void __huge*))
@@ -4466,59 +5754,59 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT((((1u << 15) + 1) >> 15) == 1)
ACCCHK_ASSERT((((1ul << 31) + 1) >> 31) == 1)
#endif
+#if defined(ACCCHK_CFG_PEDANTIC)
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
-#elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
#else
- ACCCHK_ASSERT((int)(1u << (8*SIZEOF_INT-1)) < 0)
+ ACCCHK_ASSERT((1 << (8*ACC_SIZEOF_INT-1)) < 0)
#endif
- ACCCHK_ASSERT((1u << (8*SIZEOF_INT-1)) > 0)
-#if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
-#else
- ACCCHK_ASSERT((long)(1ul << (8*SIZEOF_LONG-1)) < 0)
#endif
- ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0)
+ ACCCHK_ASSERT((1u << (8*ACC_SIZEOF_INT-1)) > 0)
+#if defined(ACCCHK_CFG_PEDANTIC)
+ ACCCHK_ASSERT((1l << (8*ACC_SIZEOF_LONG-1)) < 0)
+#endif
+ ACCCHK_ASSERT((1ul << (8*ACC_SIZEOF_LONG-1)) > 0)
#if defined(acc_int16e_t)
ACCCHK_ASSERT(sizeof(acc_int16e_t) == 2)
- ACCCHK_ASSERT(sizeof(acc_int16e_t) == SIZEOF_ACC_INT16E_T)
+ ACCCHK_ASSERT(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
ACCCHK_ASSERT(sizeof(acc_uint16e_t) == 2)
ACCCHK_ASSERT(sizeof(acc_int16e_t) == sizeof(acc_uint16e_t))
ACCCHK_ASSERT_IS_SIGNED_T(acc_int16e_t)
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint16e_t)
#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
#else
- ACCCHK_ASSERT(((acc_uint16e_t)(~(acc_uint16e_t)0ul) >> 15) == 1)
+ ACCCHK_ASSERT((ACC_STATIC_CAST(acc_uint16e_t, (~ACC_STATIC_CAST(acc_uint16e_t,0ul))) >> 15) == 1)
#endif
- ACCCHK_ASSERT( (acc_int16e_t) (1 + ~(acc_int16e_t)0) == 0)
+ ACCCHK_ASSERT( ACC_STATIC_CAST(acc_int16e_t, (1 + ~ACC_STATIC_CAST(acc_int16e_t, 0))) == 0)
#if defined(ACCCHK_CFG_PEDANTIC)
- ACCCHK_ASSERT( (acc_uint16e_t)(1 + ~(acc_uint16e_t)0) == 0)
+ ACCCHK_ASSERT( ACC_STATIC_CAST(acc_uint16e_t, (1 + ~ACC_STATIC_CAST(acc_uint16e_t, 0))) == 0)
#endif
#endif
#if defined(acc_int32e_t)
ACCCHK_ASSERT(sizeof(acc_int32e_t) == 4)
- ACCCHK_ASSERT(sizeof(acc_int32e_t) == SIZEOF_ACC_INT32E_T)
+ ACCCHK_ASSERT(sizeof(acc_int32e_t) == ACC_SIZEOF_ACC_INT32E_T)
ACCCHK_ASSERT(sizeof(acc_uint32e_t) == 4)
ACCCHK_ASSERT(sizeof(acc_int32e_t) == sizeof(acc_uint32e_t))
ACCCHK_ASSERT_IS_SIGNED_T(acc_int32e_t)
- ACCCHK_ASSERT(((( (acc_int32e_t)1 << 30) + 1) >> 30) == 1)
+ ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_int32e_t, 1) << 30) + 1) >> 30) == 1)
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32e_t)
- ACCCHK_ASSERT(((( (acc_uint32e_t)1 << 31) + 1) >> 31) == 1)
- ACCCHK_ASSERT(((acc_uint32e_t)(~(acc_uint32e_t)0ul) >> 31) == 1)
- ACCCHK_ASSERT( (acc_int32e_t) (1 + ~(acc_int32e_t)0) == 0)
+ ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_uint32e_t, 1) << 31) + 1) >> 31) == 1)
+ ACCCHK_ASSERT((ACC_STATIC_CAST(acc_uint32e_t, (~ACC_STATIC_CAST(acc_uint32e_t, 0ul))) >> 31) == 1)
+ ACCCHK_ASSERT( ACC_STATIC_CAST(acc_int32e_t, (1 + ~ACC_STATIC_CAST(acc_int32e_t, 0))) == 0)
#if defined(ACCCHK_CFG_PEDANTIC)
- ACCCHK_ASSERT( (acc_uint32e_t)(1 + ~(acc_uint32e_t)0) == 0)
+ ACCCHK_ASSERT( ACC_STATIC_CAST(acc_uint32e_t, (1 + ~ACC_STATIC_CAST(acc_uint32e_t, 0))) == 0)
#endif
#endif
#if defined(acc_int32e_t)
ACCCHK_ASSERT(sizeof(acc_int32l_t) >= sizeof(acc_int32e_t))
#endif
ACCCHK_ASSERT(sizeof(acc_int32l_t) >= 4)
- ACCCHK_ASSERT(sizeof(acc_int32l_t) == SIZEOF_ACC_INT32L_T)
+ ACCCHK_ASSERT(sizeof(acc_int32l_t) == ACC_SIZEOF_ACC_INT32L_T)
ACCCHK_ASSERT(sizeof(acc_uint32l_t) >= 4)
ACCCHK_ASSERT(sizeof(acc_int32l_t) == sizeof(acc_uint32l_t))
ACCCHK_ASSERT_IS_SIGNED_T(acc_int32l_t)
- ACCCHK_ASSERT(((( (acc_int32l_t)1 << 30) + 1) >> 30) == 1)
+ ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_int32l_t, 1) << 30) + 1) >> 30) == 1)
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32l_t)
- ACCCHK_ASSERT(((( (acc_uint32l_t)1 << 31) + 1) >> 31) == 1)
+ ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_uint32l_t, 1) << 31) + 1) >> 31) == 1)
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(int))
#if defined(acc_int32e_t)
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32e_t))
@@ -4526,17 +5814,17 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= 4)
ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
- ACCCHK_ASSERT(sizeof(acc_int32f_t) == SIZEOF_ACC_INT32F_T)
+ ACCCHK_ASSERT(sizeof(acc_int32f_t) == ACC_SIZEOF_ACC_INT32F_T)
ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= 4)
ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= sizeof(acc_uint32l_t))
ACCCHK_ASSERT(sizeof(acc_int32f_t) == sizeof(acc_uint32f_t))
ACCCHK_ASSERT_IS_SIGNED_T(acc_int32f_t)
- ACCCHK_ASSERT(((( (acc_int32f_t)1 << 30) + 1) >> 30) == 1)
+ ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_int32f_t, 1) << 30) + 1) >> 30) == 1)
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32f_t)
- ACCCHK_ASSERT(((( (acc_uint32f_t)1 << 31) + 1) >> 31) == 1)
+ ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_uint32f_t, 1) << 31) + 1) >> 31) == 1)
#if defined(acc_int64e_t)
ACCCHK_ASSERT(sizeof(acc_int64e_t) == 8)
- ACCCHK_ASSERT(sizeof(acc_int64e_t) == SIZEOF_ACC_INT64E_T)
+ ACCCHK_ASSERT(sizeof(acc_int64e_t) == ACC_SIZEOF_ACC_INT64E_T)
ACCCHK_ASSERT(sizeof(acc_uint64e_t) == 8)
ACCCHK_ASSERT(sizeof(acc_int64e_t) == sizeof(acc_uint64e_t))
ACCCHK_ASSERT_IS_SIGNED_T(acc_int64e_t)
@@ -4550,18 +5838,18 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT(sizeof(acc_int64l_t) >= sizeof(acc_int64e_t))
#endif
ACCCHK_ASSERT(sizeof(acc_int64l_t) >= 8)
- ACCCHK_ASSERT(sizeof(acc_int64l_t) == SIZEOF_ACC_INT64L_T)
+ ACCCHK_ASSERT(sizeof(acc_int64l_t) == ACC_SIZEOF_ACC_INT64L_T)
ACCCHK_ASSERT(sizeof(acc_uint64l_t) >= 8)
ACCCHK_ASSERT(sizeof(acc_int64l_t) == sizeof(acc_uint64l_t))
ACCCHK_ASSERT_IS_SIGNED_T(acc_int64l_t)
- ACCCHK_ASSERT(((( (acc_int64l_t)1 << 62) + 1) >> 62) == 1)
+ ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_int64l_t, 1) << 62) + 1) >> 62) == 1)
ACCCHK_ASSERT(((( ACC_INT64_C(1) << 62) + 1) >> 62) == 1)
#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
#else
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64l_t)
ACCCHK_ASSERT(ACC_UINT64_C(18446744073709551615) > 0)
#endif
- ACCCHK_ASSERT(((( (acc_uint64l_t)1 << 63) + 1) >> 63) == 1)
+ ACCCHK_ASSERT(((( ACC_STATIC_CAST(acc_uint64l_t, 1) << 63) + 1) >> 63) == 1)
ACCCHK_ASSERT(((( ACC_UINT64_C(1) << 63) + 1) >> 63) == 1)
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020600ul))
ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807) > ACC_INT64_C(0))
@@ -4574,20 +5862,42 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483629) == 721)
ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483647) == 1)
#endif
+#if defined(acc_int64f_t)
+#if defined(acc_int64e_t)
+ ACCCHK_ASSERT(sizeof(acc_int64f_t) >= sizeof(acc_int64e_t))
+#endif
+ ACCCHK_ASSERT(sizeof(acc_int64f_t) >= sizeof(acc_int64l_t))
+ ACCCHK_ASSERT(sizeof(acc_int64f_t) >= 8)
+ ACCCHK_ASSERT(sizeof(acc_int64f_t) >= sizeof(acc_int64l_t))
+ ACCCHK_ASSERT(sizeof(acc_int64f_t) == ACC_SIZEOF_ACC_INT64F_T)
+ ACCCHK_ASSERT(sizeof(acc_uint64f_t) >= 8)
+ ACCCHK_ASSERT(sizeof(acc_uint64f_t) >= sizeof(acc_uint64l_t))
+ ACCCHK_ASSERT(sizeof(acc_int64f_t) == sizeof(acc_uint64f_t))
+ ACCCHK_ASSERT_IS_SIGNED_T(acc_int64f_t)
+#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
+#else
+ ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64f_t)
+#endif
+#endif
#if !defined(__ACC_INTPTR_T_IS_POINTER)
ACCCHK_ASSERT_IS_SIGNED_T(acc_intptr_t)
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uintptr_t)
#endif
ACCCHK_ASSERT(sizeof(acc_intptr_t) >= sizeof(void *))
- ACCCHK_ASSERT(sizeof(acc_intptr_t) == SIZEOF_ACC_INTPTR_T)
+ ACCCHK_ASSERT(sizeof(acc_intptr_t) == ACC_SIZEOF_ACC_INTPTR_T)
ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
#if defined(acc_word_t)
- ACCCHK_ASSERT(ACC_WORDSIZE == SIZEOF_ACC_WORD_T)
+ ACCCHK_ASSERT(ACC_WORDSIZE == ACC_SIZEOF_ACC_WORD_T)
ACCCHK_ASSERT_IS_UNSIGNED_T(acc_word_t)
ACCCHK_ASSERT_IS_SIGNED_T(acc_sword_t)
- ACCCHK_ASSERT(sizeof(acc_word_t) == SIZEOF_ACC_WORD_T)
+ ACCCHK_ASSERT(sizeof(acc_word_t) == ACC_SIZEOF_ACC_WORD_T)
ACCCHK_ASSERT(sizeof(acc_word_t) == sizeof(acc_sword_t))
#endif
+ ACCCHK_ASSERT(sizeof(acc_int8_t) == 1)
+ ACCCHK_ASSERT(sizeof(acc_uint8_t) == 1)
+ ACCCHK_ASSERT(sizeof(acc_int8_t) == sizeof(acc_uint8_t))
+ ACCCHK_ASSERT_IS_SIGNED_T(acc_int8_t)
+ ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint8_t)
#if defined(ACC_INT16_C)
ACCCHK_ASSERT(sizeof(ACC_INT16_C(0)) >= 2)
ACCCHK_ASSERT(sizeof(ACC_UINT16_C(0)) >= 2)
@@ -4607,16 +5917,16 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) >> 63) == 1)
ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0) == ACC_UINT64_C(0xffffffffffffffff))
ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0l) == ACC_UINT64_C(0xffffffffffffffff))
-#if (SIZEOF_INT == 4)
+#if (ACC_SIZEOF_INT == 4)
# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
# else
- ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0u) == 0xffffffffu)
+ ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & (~0u+0u)) == 0xffffffffu)
# endif
#endif
-#if (SIZEOF_LONG == 4)
+#if (ACC_SIZEOF_LONG == 4)
# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
# else
- ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0ul) == 0xfffffffful)
+ ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & (~0ul+0ul)) == 0xfffffffful)
# endif
#endif
#endif
@@ -4677,6 +5987,14 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
#endif
+#if (ACC_ABI_IP32W64)
+ ACCCHK_ASSERT(sizeof(int) == 4)
+ ACCCHK_ASSERT(sizeof(void*) == 4)
+ ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
+ ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
+ ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
+ ACCCHK_ASSERT(ACC_WORDSIZE == 8)
+#endif
#if (ACC_ARCH_I086)
ACCCHK_ASSERT(sizeof(size_t) == 2)
ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
@@ -4695,20 +6013,22 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
ACCCHK_ASSERT(sizeof(void (*)(void)) == 8)
#endif
#if (ACC_CC_NDPC)
-#elif (SIZEOF_INT > 1)
- ACCCHK_ASSERT( (int) ((unsigned char) ((signed char) -1)) == 255)
+#elif (ACC_SIZEOF_INT > 1)
+ ACCCHK_ASSERT( ACC_STATIC_CAST(int, ACC_STATIC_CAST(unsigned char, ACC_STATIC_CAST(signed char, -1))) == 255)
#endif
+#if defined(ACCCHK_CFG_PEDANTIC)
#if (ACC_CC_KEILC)
#elif (ACC_CC_NDPC)
-#elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC)
-#elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
-#elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)
- ACCCHK_ASSERT( (int)((unsigned int)((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
+#elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (ACC_SIZEOF_INT > 1)
+ ACCCHK_ASSERT( ((ACC_STATIC_CAST(unsigned char, 128)) << ACC_STATIC_CAST(int, (8*sizeof(int)-8))) < 0)
+#endif
#endif
+#if defined(ACCCHK_CFG_PEDANTIC)
#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
# pragma option pop
#endif
#endif
+#endif
#if defined(ACC_WANT_ACCLIB_UA)
# undef ACC_WANT_ACCLIB_UA
#define __ACCLIB_UA_CH_INCLUDED 1
@@ -4720,22 +6040,22 @@ ACCLIB_PUBLIC(unsigned, acc_ua_get_be16) (const acc_hvoid_p p)
#if defined(ACC_UA_GET_BE16)
return ACC_UA_GET_BE16(p);
#else
- const acc_hbyte_p b = (const acc_hbyte_p) p;
- return ((unsigned)b[1]) | ((unsigned)b[0] << 8);
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
+ return ACC_ICONV(unsigned, b[1]) | (ACC_ICONV(unsigned, b[0]) << 8);
#endif
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p p)
{
- const acc_hbyte_p b = (const acc_hbyte_p) p;
- return ((acc_uint32l_t)b[2]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[0] << 16);
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
+ return ACC_ICONV(acc_uint32l_t, b[2]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[0]) << 16);
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p p)
{
#if defined(ACC_UA_GET_BE32)
return ACC_UA_GET_BE32(p);
#else
- const acc_hbyte_p b = (const acc_hbyte_p) p;
- return ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
+ return ACC_ICONV(acc_uint32l_t, b[3]) | (ACC_ICONV(acc_uint32l_t, b[2]) << 8) | (ACC_ICONV(acc_uint32l_t, b[1]) << 16) | (ACC_ICONV(acc_uint32l_t, b[0]) << 24);
#endif
}
ACCLIB_PUBLIC(void, acc_ua_set_be16) (acc_hvoid_p p, unsigned v)
@@ -4743,28 +6063,28 @@ ACCLIB_PUBLIC(void, acc_ua_set_be16) (acc_hvoid_p p, unsigned v)
#if defined(ACC_UA_SET_BE16)
ACC_UA_SET_BE16(p, v);
#else
- acc_hbyte_p b = (acc_hbyte_p) p;
- b[1] = (unsigned char) ((v >> 0) & 0xff);
- b[0] = (unsigned char) ((v >> 8) & 0xff);
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ b[1] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
+ b[0] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
#endif
}
ACCLIB_PUBLIC(void, acc_ua_set_be24) (acc_hvoid_p p, acc_uint32l_t v)
{
- acc_hbyte_p b = (acc_hbyte_p) p;
- b[2] = (unsigned char) ((v >> 0) & 0xff);
- b[1] = (unsigned char) ((v >> 8) & 0xff);
- b[0] = (unsigned char) ((v >> 16) & 0xff);
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ b[2] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
+ b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
+ b[0] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
}
ACCLIB_PUBLIC(void, acc_ua_set_be32) (acc_hvoid_p p, acc_uint32l_t v)
{
#if defined(ACC_UA_SET_BE32)
ACC_UA_SET_BE32(p, v);
#else
- acc_hbyte_p b = (acc_hbyte_p) p;
- b[3] = (unsigned char) ((v >> 0) & 0xff);
- b[2] = (unsigned char) ((v >> 8) & 0xff);
- b[1] = (unsigned char) ((v >> 16) & 0xff);
- b[0] = (unsigned char) ((v >> 24) & 0xff);
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ b[3] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
+ b[2] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
+ b[1] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
+ b[0] = ACC_ICONV(unsigned char, (v >> 24) & 0xff);
#endif
}
ACCLIB_PUBLIC(unsigned, acc_ua_get_le16) (const acc_hvoid_p p)
@@ -4772,22 +6092,22 @@ ACCLIB_PUBLIC(unsigned, acc_ua_get_le16) (const acc_hvoid_p p)
#if defined(ACC_UA_GET_LE16)
return ACC_UA_GET_LE16(p);
#else
- const acc_hbyte_p b = (const acc_hbyte_p) p;
- return ((unsigned)b[0]) | ((unsigned)b[1] << 8);
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
+ return ACC_ICONV(unsigned, b[0]) | (ACC_ICONV(unsigned, b[1]) << 8);
#endif
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p p)
{
- const acc_hbyte_p b = (const acc_hbyte_p) p;
- return ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16);
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
+ return ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16);
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p p)
{
#if defined(ACC_UA_GET_LE32)
return ACC_UA_GET_LE32(p);
#else
- const acc_hbyte_p b = (const acc_hbyte_p) p;
- return ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
+ return ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16) | (ACC_ICONV(acc_uint32l_t, b[3]) << 24);
#endif
}
ACCLIB_PUBLIC(void, acc_ua_set_le16) (acc_hvoid_p p, unsigned v)
@@ -4795,28 +6115,28 @@ ACCLIB_PUBLIC(void, acc_ua_set_le16) (acc_hvoid_p p, unsigned v)
#if defined(ACC_UA_SET_LE16)
ACC_UA_SET_LE16(p, v);
#else
- acc_hbyte_p b = (acc_hbyte_p) p;
- b[0] = (unsigned char) ((v >> 0) & 0xff);
- b[1] = (unsigned char) ((v >> 8) & 0xff);
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ b[0] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
+ b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
#endif
}
ACCLIB_PUBLIC(void, acc_ua_set_le24) (acc_hvoid_p p, acc_uint32l_t v)
{
- acc_hbyte_p b = (acc_hbyte_p) p;
- b[0] = (unsigned char) ((v >> 0) & 0xff);
- b[1] = (unsigned char) ((v >> 8) & 0xff);
- b[2] = (unsigned char) ((v >> 16) & 0xff);
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ b[0] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
+ b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
+ b[2] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
}
ACCLIB_PUBLIC(void, acc_ua_set_le32) (acc_hvoid_p p, acc_uint32l_t v)
{
#if defined(ACC_UA_SET_LE32)
ACC_UA_SET_LE32(p, v);
#else
- acc_hbyte_p b = (acc_hbyte_p) p;
- b[0] = (unsigned char) ((v >> 0) & 0xff);
- b[1] = (unsigned char) ((v >> 8) & 0xff);
- b[2] = (unsigned char) ((v >> 16) & 0xff);
- b[3] = (unsigned char) ((v >> 24) & 0xff);
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ b[0] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
+ b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
+ b[2] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
+ b[3] = ACC_ICONV(unsigned char, (v >> 24) & 0xff);
#endif
}
#if defined(acc_int64l_t)
@@ -4825,21 +6145,21 @@ ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p p)
#if defined(ACC_UA_GET_BE64)
return ACC_UA_GET_BE64(p);
#elif defined(ACC_UA_GET_BE32)
- const acc_hbyte_p b = (const acc_hbyte_p) p;
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
acc_uint32e_t v0, v1;
v1 = ACC_UA_GET_BE32(b + 0);
v0 = ACC_UA_GET_BE32(b + 4);
- return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
-#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
- const acc_hbyte_p b = (const acc_hbyte_p) p;
- return ((acc_uint64l_t)b[7]) | ((acc_uint64l_t)b[6] << 8) | ((acc_uint64l_t)b[5] << 16) | ((acc_uint64l_t)b[4] << 24) | ((acc_uint64l_t)b[3] << 32) | ((acc_uint64l_t)b[2] << 40) | ((acc_uint64l_t)b[1] << 48) | ((acc_uint64l_t)b[0] << 56);
+ return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
+#elif (ACC_WORDSIZE >= 8)
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
+ return (ACC_ICONV(acc_uint64l_t, b[7])) | (ACC_ICONV(acc_uint64l_t, b[6]) << 8) | (ACC_ICONV(acc_uint64l_t, b[5]) << 16) | (ACC_ICONV(acc_uint64l_t, b[4]) << 24) | (ACC_ICONV(acc_uint64l_t, b[3]) << 32) | (ACC_ICONV(acc_uint64l_t, b[2]) << 40) | (ACC_ICONV(acc_uint64l_t, b[1]) << 48) | (ACC_ICONV(acc_uint64l_t, b[0]) << 56);
#else
- const acc_hbyte_p b = (const acc_hbyte_p) p;
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
acc_uint32l_t v0, v1;
- v1 = ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
+ v1 = ACC_ICONV(acc_uint32l_t, b[3]) | (ACC_ICONV(acc_uint32l_t, b[2]) << 8) | (ACC_ICONV(acc_uint32l_t, b[1]) << 16) | (ACC_ICONV(acc_uint32l_t, b[0]) << 24);
b += 4;
- v0 = ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
- return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
+ v0 = ACC_ICONV(acc_uint32l_t, b[3]) | (ACC_ICONV(acc_uint32l_t, b[2]) << 8) | (ACC_ICONV(acc_uint32l_t, b[1]) << 16) | (ACC_ICONV(acc_uint32l_t, b[0]) << 24);
+ return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
#endif
}
ACCLIB_PUBLIC(void, acc_ua_set_be64) (acc_hvoid_p p, acc_uint64l_t v)
@@ -4847,32 +6167,34 @@ ACCLIB_PUBLIC(void, acc_ua_set_be64) (acc_hvoid_p p, acc_uint64l_t v)
#if defined(ACC_UA_SET_BE64)
ACC_UA_SET_BE64(p, v);
#elif defined(ACC_UA_SET_BE32)
- acc_hbyte_p b = (acc_hbyte_p) p;
- ACC_UA_SET_BE32(b + 4, (v >> 0));
- ACC_UA_SET_BE32(b + 0, (v >> 32));
-#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
- acc_hbyte_p b = (acc_hbyte_p) p;
- b[7] = (unsigned char) ((v >> 0) & 0xff);
- b[6] = (unsigned char) ((v >> 8) & 0xff);
- b[5] = (unsigned char) ((v >> 16) & 0xff);
- b[4] = (unsigned char) ((v >> 24) & 0xff);
- b[3] = (unsigned char) ((v >> 32) & 0xff);
- b[2] = (unsigned char) ((v >> 40) & 0xff);
- b[1] = (unsigned char) ((v >> 48) & 0xff);
- b[0] = (unsigned char) ((v >> 56) & 0xff);
-#else
- acc_hbyte_p b = (acc_hbyte_p) p;
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ ACC_UA_SET_BE32(b + 4, v);
+ v >>= 32;
+ ACC_UA_SET_BE32(b + 0, v);
+#elif (ACC_WORDSIZE >= 8)
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ b[7] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[6] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[5] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[4] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[3] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[2] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[1] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[0] = ACC_ITRUNC(unsigned char, v);
+#else
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
acc_uint32l_t x;
- x = (acc_uint32l_t) (v >> 0);
- b[7] = (unsigned char) ((x >> 0) & 0xff);
- b[6] = (unsigned char) ((x >> 8) & 0xff);
- b[5] = (unsigned char) ((x >> 16) & 0xff);
- b[4] = (unsigned char) ((x >> 24) & 0xff);
- x = (acc_uint32l_t) (v >> 32);
- b[3] = (unsigned char) ((x >> 0) & 0xff);
- b[2] = (unsigned char) ((x >> 8) & 0xff);
- b[1] = (unsigned char) ((x >> 16) & 0xff);
- b[0] = (unsigned char) ((x >> 24) & 0xff);
+ x = ACC_ITRUNC(acc_uint32l_t, v);
+ b[7] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[6] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[5] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[4] = ACC_ITRUNC(unsigned char, x);
+ v >>= 32;
+ x = ACC_ITRUNC(acc_uint32l_t, v);
+ b[3] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[2] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[1] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[0] = ACC_ITRUNC(unsigned char, x);
#endif
}
#endif
@@ -4882,21 +6204,21 @@ ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p p)
#if defined(ACC_UA_GET_LE64)
return ACC_UA_GET_LE64(p);
#elif defined(ACC_UA_GET_LE32)
- const acc_hbyte_p b = (const acc_hbyte_p) p;
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
acc_uint32e_t v0, v1;
v0 = ACC_UA_GET_LE32(b + 0);
v1 = ACC_UA_GET_LE32(b + 4);
- return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
-#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
- const acc_hbyte_p b = (const acc_hbyte_p) p;
- return ((acc_uint64l_t)b[0]) | ((acc_uint64l_t)b[1] << 8) | ((acc_uint64l_t)b[2] << 16) | ((acc_uint64l_t)b[3] << 24) | ((acc_uint64l_t)b[4] << 32) | ((acc_uint64l_t)b[5] << 40) | ((acc_uint64l_t)b[6] << 48) | ((acc_uint64l_t)b[7] << 56);
+ return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
+#elif (ACC_WORDSIZE >= 8)
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
+ return ACC_ICONV(acc_uint64l_t, b[0]) | (ACC_ICONV(acc_uint64l_t, b[1]) << 8) | (ACC_ICONV(acc_uint64l_t, b[2]) << 16) | (ACC_ICONV(acc_uint64l_t, b[3]) << 24) | (ACC_ICONV(acc_uint64l_t, b[4]) << 32) | (ACC_ICONV(acc_uint64l_t, b[5]) << 40) | (ACC_ICONV(acc_uint64l_t, b[6]) << 48) | (ACC_ICONV(acc_uint64l_t, b[7]) << 56);
#else
- const acc_hbyte_p b = (const acc_hbyte_p) p;
+ const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
acc_uint32l_t v0, v1;
- v0 = ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
+ v0 = ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16) | (ACC_ICONV(acc_uint32l_t, b[3]) << 24);
b += 4;
- v1 = ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
- return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
+ v1 = ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16) | (ACC_ICONV(acc_uint32l_t, b[3]) << 24);
+ return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
#endif
}
ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
@@ -4904,32 +6226,34 @@ ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
#if defined(ACC_UA_SET_LE64)
ACC_UA_SET_LE64(p, v);
#elif defined(ACC_UA_SET_LE32)
- acc_hbyte_p b = (acc_hbyte_p) p;
- ACC_UA_SET_LE32(b + 0, (v >> 0));
- ACC_UA_SET_LE32(b + 4, (v >> 32));
-#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
- acc_hbyte_p b = (acc_hbyte_p) p;
- b[0] = (unsigned char) ((v >> 0) & 0xff);
- b[1] = (unsigned char) ((v >> 8) & 0xff);
- b[2] = (unsigned char) ((v >> 16) & 0xff);
- b[3] = (unsigned char) ((v >> 24) & 0xff);
- b[4] = (unsigned char) ((v >> 32) & 0xff);
- b[5] = (unsigned char) ((v >> 40) & 0xff);
- b[6] = (unsigned char) ((v >> 48) & 0xff);
- b[7] = (unsigned char) ((v >> 56) & 0xff);
-#else
- acc_hbyte_p b = (acc_hbyte_p) p;
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ ACC_UA_SET_LE32(b + 0, v);
+ v >>= 32;
+ ACC_UA_SET_LE32(b + 4, v);
+#elif (ACC_WORDSIZE >= 8)
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
+ b[0] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[1] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[2] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[3] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[4] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[5] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[6] = ACC_ITRUNC(unsigned char, v); v >>= 8;
+ b[7] = ACC_ITRUNC(unsigned char, v);
+#else
+ acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
acc_uint32l_t x;
- x = (acc_uint32l_t) (v >> 0);
- b[0] = (unsigned char) ((x >> 0) & 0xff);
- b[1] = (unsigned char) ((x >> 8) & 0xff);
- b[2] = (unsigned char) ((x >> 16) & 0xff);
- b[3] = (unsigned char) ((x >> 24) & 0xff);
- x = (acc_uint32l_t) (v >> 32);
- b[4] = (unsigned char) ((x >> 0) & 0xff);
- b[5] = (unsigned char) ((x >> 8) & 0xff);
- b[6] = (unsigned char) ((x >> 16) & 0xff);
- b[7] = (unsigned char) ((x >> 24) & 0xff);
+ x = ACC_ITRUNC(acc_uint32l_t, v);
+ b[0] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[1] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[2] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[3] = ACC_ITRUNC(unsigned char, x);
+ v >>= 32;
+ x = ACC_ITRUNC(acc_uint32l_t, v);
+ b[4] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[5] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[6] = ACC_ITRUNC(unsigned char, x); x >>= 8;
+ b[7] = ACC_ITRUNC(unsigned char, x);
#endif
}
#endif
@@ -4949,19 +6273,20 @@ ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
# define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline r __ACCLIB_FUNCNAME(f)
# endif
#endif
+extern void* volatile acc_vget_ptr__;
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x030400ul) || ACC_CC_LLVM)
-extern void* volatile __acc_vget_ptr;
-void* volatile __attribute__((__used__)) __acc_vget_ptr = (void *) 0;
+void* volatile __attribute__((__used__)) acc_vget_ptr__ = ACC_STATIC_CAST(void *, 0);
#else
-extern void* volatile __acc_vget_ptr;
-void* volatile __acc_vget_ptr = (void *) 0;
+void* volatile acc_vget_ptr__ = ACC_STATIC_CAST(void *, 0);
#endif
#ifndef __ACCLIB_VGET_BODY
#define __ACCLIB_VGET_BODY(T) \
- if __acc_unlikely(__acc_vget_ptr) { \
- * (T *) __acc_vget_ptr = v; \
- * (int *) __acc_vget_ptr = expr; \
- v = * (T *) __acc_vget_ptr; \
+ if __acc_unlikely(acc_vget_ptr__) { \
+ typedef T __acc_may_alias TT; \
+ unsigned char e; expr &= 255; e = ACC_STATIC_CAST(unsigned char, expr); \
+ * ACC_STATIC_CAST(TT *, acc_vget_ptr__) = v; \
+ * ACC_STATIC_CAST(unsigned char *, acc_vget_ptr__) = e; \
+ v = * ACC_STATIC_CAST(TT *, acc_vget_ptr__); \
} \
return v;
#endif
@@ -4987,12 +6312,6 @@ ACCLIB_PUBLIC_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t v, int ex
{
__ACCLIB_VGET_BODY(acc_hsize_t)
}
-#if !(ACC_CFG_NO_FLOAT)
-ACCLIB_PUBLIC_NOINLINE(float, acc_vget_float) (float v, int expr)
-{
- __ACCLIB_VGET_BODY(float)
-}
-#endif
#if !(ACC_CFG_NO_DOUBLE)
ACCLIB_PUBLIC_NOINLINE(double, acc_vget_double) (double v, int expr)
{
@@ -5025,8 +6344,8 @@ ACCLIB_PUBLIC_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoi
ACCLIB_PUBLIC(int, acc_hmemcmp) (const acc_hvoid_p s1, const acc_hvoid_p s2, acc_hsize_t len)
{
#if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCMP)
- const acc_hbyte_p p1 = (const acc_hbyte_p) s1;
- const acc_hbyte_p p2 = (const acc_hbyte_p) s2;
+ const acc_hbyte_p p1 = ACC_STATIC_CAST(const acc_hbyte_p, s1);
+ const acc_hbyte_p p2 = ACC_STATIC_CAST(const acc_hbyte_p, s2);
if __acc_likely(len > 0) do
{
int d = *p1 - *p2;
@@ -5042,8 +6361,8 @@ ACCLIB_PUBLIC(int, acc_hmemcmp) (const acc_hvoid_p s1, const acc_hvoid_p s2, acc
ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
{
#if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMCPY)
- acc_hbyte_p p1 = (acc_hbyte_p) dest;
- const acc_hbyte_p p2 = (const acc_hbyte_p) src;
+ acc_hbyte_p p1 = ACC_STATIC_CAST(acc_hbyte_p, dest);
+ const acc_hbyte_p p2 = ACC_STATIC_CAST(const acc_hbyte_p, src);
if (!(len > 0) || p1 == p2)
return dest;
do
@@ -5057,8 +6376,8 @@ ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p dest, const acc_hvoid_p src
ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
{
#if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMMOVE)
- acc_hbyte_p p1 = (acc_hbyte_p) dest;
- const acc_hbyte_p p2 = (const acc_hbyte_p) src;
+ acc_hbyte_p p1 = ACC_STATIC_CAST(acc_hbyte_p, dest);
+ const acc_hbyte_p p2 = ACC_STATIC_CAST(const acc_hbyte_p, src);
if (!(len > 0) || p1 == p2)
return dest;
if (p1 < p2)
@@ -5080,16 +6399,17 @@ ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p dest, const acc_hvoid_p sr
return memmove(dest, src, len);
#endif
}
-ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemset) (acc_hvoid_p s, int c, acc_hsize_t len)
+ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemset) (acc_hvoid_p s, int cc, acc_hsize_t len)
{
#if (ACC_HAVE_MM_HUGE_PTR) || !(HAVE_MEMSET)
- acc_hbyte_p p = (acc_hbyte_p) s;
+ acc_hbyte_p p = ACC_STATIC_CAST(acc_hbyte_p, s);
+ unsigned char c = ACC_ITRUNC(unsigned char, cc);
if __acc_likely(len > 0) do
- *p++ = (unsigned char) c;
+ *p++ = c;
while __acc_likely(--len > 0);
return s;
#else
- return memset(s, c, len);
+ return memset(s, cc, len);
#endif
}
#endif
@@ -5117,15 +6437,19 @@ ACCLIB_PUBLIC(void, acc_srand48) (acc_rand48_p r, acc_uint32l_t seed)
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48) (acc_rand48_p r)
{
+ acc_uint64l_t a;
r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
r->seed &= ACC_UINT64_C(0xffffffffffff);
- return (acc_uint32l_t) (r->seed >> 17);
+ a = r->seed >> 17;
+ return ACC_STATIC_CAST(acc_uint32l_t, a);
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p r)
{
+ acc_uint64l_t a;
r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
r->seed &= ACC_UINT64_C(0xffffffffffff);
- return (acc_uint32l_t) (r->seed >> 16);
+ a = r->seed >> 16;
+ return ACC_STATIC_CAST(acc_uint32l_t, a);
}
#endif
#if defined(acc_int64l_t)
@@ -5135,19 +6459,23 @@ ACCLIB_PUBLIC(void, acc_srand64) (acc_rand64_p r, acc_uint64l_t seed)
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64) (acc_rand64_p r)
{
+ acc_uint64l_t a;
r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
#if (ACC_SIZEOF_ACC_INT64L_T > 8)
r->seed &= ACC_UINT64_C(0xffffffffffffffff);
#endif
- return (acc_uint32l_t) (r->seed >> 33);
+ a = r->seed >> 33;
+ return ACC_STATIC_CAST(acc_uint32l_t, a);
}
ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p r)
{
+ acc_uint64l_t a;
r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
#if (ACC_SIZEOF_ACC_INT64L_T > 8)
r->seed &= ACC_UINT64_C(0xffffffffffffffff);
#endif
- return (acc_uint32l_t) (r->seed >> 32);
+ a = r->seed >> 32;
+ return ACC_STATIC_CAST(acc_uint32l_t, a);
}
#endif
ACCLIB_PUBLIC(void, acc_srandmt) (acc_randmt_p r, acc_uint32l_t seed)
@@ -5171,14 +6499,14 @@ ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p r)
unsigned i = 0, j;
r->n = 0;
do {
- j = i - 623; if ((int) j < 0) j += 624;
+ j = i - 623; if (ACC_STATIC_CAST(int, j) < 0) j += 624;
v = (r->s[i] & ACC_UINT32_C(0x80000000)) ^ (r->s[j] & ACC_UINT32_C(0x7fffffff));
- j = i - 227; if ((int) j < 0) j += 624;
+ j = i - 227; if (ACC_STATIC_CAST(int, j) < 0) j += 624;
r->s[i] = r->s[j] ^ (v >> 1);
if (v & 1) r->s[i] ^= ACC_UINT32_C(0x9908b0df);
} while (++i != 624);
}
- v = r->s[r->n++];
+ { unsigned i = r->n++; v = r->s[i]; }
v ^= v >> 11; v ^= (v & ACC_UINT32_C(0x013a58ad)) << 7;
v ^= (v & ACC_UINT32_C(0x0001df8c)) << 15; v ^= v >> 18;
return v;
@@ -5199,7 +6527,7 @@ ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt64) (acc_randmt64_p r)
{
acc_uint64l_t v;
v = (__ACCLIB_FUNCNAME(acc_randmt64_r64)(r)) >> 33;
- return (acc_uint32l_t) v;
+ return ACC_STATIC_CAST(acc_uint32l_t, v);
}
#endif
ACCLIB_PUBLIC(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p r)
@@ -5209,14 +6537,14 @@ ACCLIB_PUBLIC(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p r)
unsigned i = 0, j;
r->n = 0;
do {
- j = i - 311; if ((int) j < 0) j += 312;
+ j = i - 311; if (ACC_STATIC_CAST(int, j) < 0) j += 312;
v = (r->s[i] & ACC_UINT64_C(0xffffffff80000000)) ^ (r->s[j] & ACC_UINT64_C(0x7fffffff));
- j = i - 156; if ((int) j < 0) j += 312;
+ j = i - 156; if (ACC_STATIC_CAST(int, j) < 0) j += 312;
r->s[i] = r->s[j] ^ (v >> 1);
if (v & 1) r->s[i] ^= ACC_UINT64_C(0xb5026f5aa96619e9);
} while (++i != 312);
}
- v = r->s[r->n++];
+ { unsigned i = r->n++; v = r->s[i]; }
v ^= (v & ACC_UINT64_C(0xaaaaaaaaa0000000)) >> 29;
v ^= (v & ACC_UINT64_C(0x38eb3ffff6d3)) << 17;
v ^= (v & ACC_UINT64_C(0x7ffbf77)) << 37;
@@ -5236,20 +6564,16 @@ ACCLIB_PUBLIC(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p r)
# pragma warn(disable:2007)
#endif
#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
-#if (ACC_ARCH_AMD64 && ACC_CC_PATHSCALE)
-# define __ACCLIB_RDTSC_REGS : : "c" (t) : "cc", "memory", "rax", "rdx"
-#elif (ACC_ARCH_AMD64 && ACC_CC_INTELC)
-# define __ACCLIB_RDTSC_REGS : : "r" (t) : "memory", "rax", "rdx"
+#if (ACC_ARCH_AMD64 && ACC_CC_INTELC)
+# define __ACCLIB_RDTSC_REGS : : "c" (t) : "memory", "rax", "rdx"
#elif (ACC_ARCH_AMD64)
-# define __ACCLIB_RDTSC_REGS : : "r" (t) : "cc", "memory", "rax", "rdx"
+# define __ACCLIB_RDTSC_REGS : : "c" (t) : "cc", "memory", "rax", "rdx"
#elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
-# define __ACCLIB_RDTSC_REGS : : "r" (t) : "ax", "dx"
+# define __ACCLIB_RDTSC_REGS : : "c" (t) : "ax", "dx"
#elif (ACC_ARCH_I386 && ACC_CC_INTELC)
-# define __ACCLIB_RDTSC_REGS : : "r" (t) : "memory", "eax", "edx"
-#elif (ACC_ARCH_I386 && ACC_CC_PATHSCALE)
# define __ACCLIB_RDTSC_REGS : : "c" (t) : "memory", "eax", "edx"
#else
-# define __ACCLIB_RDTSC_REGS : : "r" (t) : "cc", "memory", "eax", "edx"
+# define __ACCLIB_RDTSC_REGS : : "c" (t) : "cc", "memory", "eax", "edx"
#endif
#endif
ACCLIB_PUBLIC(int, acc_tsc_read) (acc_uint32e_t* t)
@@ -5515,7 +6839,7 @@ ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
if (!s || s[1] != ':')
{
if (!a[0])
- ++g->optind, g->shortpos = 0;
+ { ++g->optind; g->shortpos = 0; }
if (!s)
{
g->optopt = c;
@@ -5524,7 +6848,7 @@ ACCLIB_PUBLIC(int, acc_getopt) (acc_getopt_p g,
}
else
{
- ++g->optind, g->shortpos = 0;
+ ++g->optind; g->shortpos = 0;
if (a[0])
g->optarg = a;
else if (s[2] != ':')
@@ -5595,16 +6919,16 @@ ACC_EXTERN_C int __far __pascal GlobalUnlock(const void __near*);
#endif
ACCLIB_PUBLIC(acc_hvoid_p, acc_halloc) (acc_hsize_t size)
{
- acc_hvoid_p p = 0;
+ acc_hvoid_p p = ACC_STATIC_CAST(acc_hvoid_p, 0);
if (!(size > 0))
return p;
#if 0 && defined(__palmos__)
p = MemPtrNew(size);
#elif !(ACC_HAVE_MM_HUGE_PTR)
- if (size < (size_t) -1)
- p = malloc((size_t) size);
+ if (size < ACC_STATIC_CAST(size_t, -1))
+ p = malloc(ACC_STATIC_CAST(size_t, size));
#else
- if ((long)size <= 0)
+ if (ACC_STATIC_CAST(long, size) <= 0)
return p;
{
#if (__ACCLIB_HALLOC_USE_DAH)
@@ -5633,8 +6957,8 @@ ACCLIB_PUBLIC(acc_hvoid_p, acc_halloc) (acc_hsize_t size)
#elif (ACC_CC_AZTECC)
p = lmalloc(size);
#else
- if (size < (size_t) -1)
- p = malloc((size_t) size);
+ if (size < ACC_STATIC_CAST(size_t, -1))
+ p = malloc(ACC_STATIC_CAST(size_t, size));
#endif
}
#endif
@@ -5684,7 +7008,7 @@ ACCLIB_PUBLIC(void, acc_hfree) (acc_hvoid_p p)
#endif
ACCLIB_PUBLIC(acc_hsize_t, acc_hfread) (void* vfp, acc_hvoid_p buf, acc_hsize_t size)
{
- FILE* fp = (FILE *) vfp;
+ FILE* fp = ACC_STATIC_CAST(FILE *, vfp);
#if (ACC_HAVE_MM_HUGE_PTR)
#if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
#define __ACCLIB_REQUIRE_HMEMCPY_CH 1
@@ -5724,7 +7048,7 @@ ACCLIB_PUBLIC(acc_hsize_t, acc_hfread) (void* vfp, acc_hvoid_p buf, acc_hsize_t
}
ACCLIB_PUBLIC(acc_hsize_t, acc_hfwrite) (void* vfp, const acc_hvoid_p buf, acc_hsize_t size)
{
- FILE* fp = (FILE *) vfp;
+ FILE* fp = ACC_STATIC_CAST(FILE *, vfp);
#if (ACC_HAVE_MM_HUGE_PTR)
#if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
#define __ACCLIB_REQUIRE_HMEMCPY_CH 1
@@ -5844,26 +7168,26 @@ ACCLIB_PUBLIC(long, acc_safe_hwrite) (int fd, const acc_hvoid_p buf, long size)
#if !defined(ACCLIB_PUBLIC)
# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
#endif
-#if 0 && (ACC_OS_POSIX_LINUX && ACC_ARCH_AMD64 && ACC_ASM_SYNTAX_GNUC)
+#if 1 && (ACC_OS_POSIX_LINUX && ACC_ARCH_AMD64 && ACC_ASM_SYNTAX_GNUC && !ACC_CFG_NO_SYSCALL)
#ifndef acc_pclock_syscall_clock_gettime
#define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime
#endif
-static __acc_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
+__acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
{
- long r;
- __asm__ __volatile__("syscall\n" : "=a" (r) : "0" (228), "D" (clockid), "S" (ts) : __ACC_ASM_CLOBBER);
- return r;
+ unsigned long r = 228;
+ __asm__ __volatile__("syscall\n" : "=a" (r), "=m" (*ts) : "0" (r), "D" (clockid), "S" (ts) __ACC_ASM_CLOBBER_LIST_CC);
+ return ACC_ICAST(long, r);
}
#endif
-#if 0 && (ACC_OS_POSIX_LINUX && ACC_ARCH_I386 && ACC_ASM_SYNTAX_GNUC)
+#if 1 && (ACC_OS_POSIX_LINUX && ACC_ARCH_I386 && ACC_ASM_SYNTAX_GNUC && !ACC_CFG_NO_SYSCALL) && defined(acc_int64l_t)
#ifndef acc_pclock_syscall_clock_gettime
#define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime
#endif
-static __acc_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
+__acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
{
- long r;
- __asm__ __volatile__("int $0x80\n" : "=a" (r) : "0" (265), "b" (clockid), "c" (ts) : __ACC_ASM_CLOBBER);
- return r;
+ unsigned long r = 265;
+ __asm__ __volatile__("pushl %%ebx\n pushl %%edx\n popl %%ebx\n int $0x80\n popl %%ebx\n": "=a" (r), "=m" (*ts) : "0" (r), "d" (clockid), "c" (ts) __ACC_ASM_CLOBBER_LIST_CC);
+ return ACC_ICAST(long, r);
}
#endif
#if 0 && defined(acc_pclock_syscall_clock_gettime)
@@ -5876,7 +7200,7 @@ static int acc_pclock_read_clock_gettime_r_syscall(acc_pclock_handle_p h, acc_pc
if (acc_pclock_syscall_clock_gettime(0, &ts) != 0)
return -1;
c->tv_sec = ts.tv_sec;
- c->tv_nsec = ts.tv_nsec;
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
ACC_UNUSED(h); return 0;
}
#endif
@@ -5887,7 +7211,7 @@ static int acc_pclock_read_clock_gettime_r_syscall(acc_pclock_handle_p h, acc_pc
static int acc_pclock_read_gettimeofday(acc_pclock_handle_p h, acc_pclock_p c)
{
struct timeval tv;
- if (gettimeofday(&tv, 0) != 0)
+ if (gettimeofday(&tv, NULL) != 0)
return -1;
#if defined(acc_int64l_t)
c->tv_sec = tv.tv_sec;
@@ -5895,11 +7219,11 @@ static int acc_pclock_read_gettimeofday(acc_pclock_handle_p h, acc_pclock_p c)
c->tv_sec_high = 0;
c->tv_sec_low = tv.tv_sec;
#endif
- c->tv_nsec = (acc_uint32l_t) (tv.tv_usec * 1000u);
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, (tv.tv_usec * 1000u));
ACC_UNUSED(h); return 0;
}
#endif
-#if defined(CLOCKS_PER_SEC)
+#if defined(CLOCKS_PER_SEC) && !(ACC_CFG_NO_DOUBLE)
#ifndef acc_pclock_read_clock
#define acc_pclock_read_clock acc_pclock_read_clock
#endif
@@ -5910,15 +7234,16 @@ static int acc_pclock_read_clock(acc_pclock_handle_p h, acc_pclock_p c)
#if defined(acc_int64l_t)
acc_uint64l_t nsecs;
ticks = clock();
- secs = (double)ticks / (CLOCKS_PER_SEC);
- nsecs = (acc_uint64l_t) (secs * 1000000000.0);
- c->tv_sec = (acc_int64l_t) (nsecs / 1000000000ul);
- c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
+ secs = ACC_STATIC_CAST(double, ticks) / (CLOCKS_PER_SEC);
+ nsecs = ACC_STATIC_CAST(acc_uint64l_t, (secs * 1000000000.0));
+ c->tv_sec = ACC_STATIC_CAST(acc_int64l_t, (nsecs / 1000000000ul));
+ nsecs = (nsecs % 1000000000ul);
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, nsecs);
#else
ticks = clock();
- secs = (double)ticks / (CLOCKS_PER_SEC);
+ secs = ACC_STATIC_CAST(double, ticks) / (CLOCKS_PER_SEC);
c->tv_sec_high = 0;
- c->tv_sec_low = (acc_uint32l_t) (secs + 0.5);
+ c->tv_sec_low = ACC_STATIC_CAST(acc_uint32l_t, (secs + 0.5));
c->tv_nsec = 0;
#endif
ACC_UNUSED(h); return 0;
@@ -5934,11 +7259,11 @@ static int acc_pclock_read_clock_gettime_m_syscall(acc_pclock_handle_p h, acc_pc
if (acc_pclock_syscall_clock_gettime(1, &ts) != 0)
return -1;
c->tv_sec = ts.tv_sec;
- c->tv_nsec = ts.tv_nsec;
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
ACC_UNUSED(h); return 0;
}
#endif
-#if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__) && defined(UCLOCKS_PER_SEC)
+#if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__) && defined(UCLOCKS_PER_SEC) && !(ACC_CFG_NO_DOUBLE)
#ifndef acc_pclock_read_uclock
#define acc_pclock_read_uclock acc_pclock_read_uclock
#endif
@@ -5948,14 +7273,14 @@ static int acc_pclock_read_uclock(acc_pclock_handle_p h, acc_pclock_p c)
double secs;
acc_uint64l_t nsecs;
ticks = uclock();
- secs = (double)ticks / (UCLOCKS_PER_SEC);
- nsecs = (acc_uint64l_t) (secs * 1000000000.0);
+ secs = ACC_STATIC_CAST(double, ticks) / (UCLOCKS_PER_SEC);
+ nsecs = ACC_STATIC_CAST(acc_uint64l_t, (secs * 1000000000.0));
c->tv_sec = nsecs / 1000000000ul;
- c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, (nsecs % 1000000000ul));
ACC_UNUSED(h); return 0;
}
#endif
-#if 0 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) && defined(acc_int64l_t)
+#if 1 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID) && defined(acc_int64l_t)
#ifndef acc_pclock_read_clock_gettime_p_libc
#define acc_pclock_read_clock_gettime_p_libc acc_pclock_read_clock_gettime_p_libc
#endif
@@ -5965,7 +7290,7 @@ static int acc_pclock_read_clock_gettime_p_libc(acc_pclock_handle_p h, acc_pcloc
if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts) != 0)
return -1;
c->tv_sec = ts.tv_sec;
- c->tv_nsec = ts.tv_nsec;
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
ACC_UNUSED(h); return 0;
}
#endif
@@ -5979,7 +7304,7 @@ static int acc_pclock_read_clock_gettime_p_syscall(acc_pclock_handle_p h, acc_pc
if (acc_pclock_syscall_clock_gettime(2, &ts) != 0)
return -1;
c->tv_sec = ts.tv_sec;
- c->tv_nsec = ts.tv_nsec;
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
ACC_UNUSED(h); return 0;
}
#endif
@@ -5993,13 +7318,14 @@ static int acc_pclock_read_getprocesstimes(acc_pclock_handle_p h, acc_pclock_p c
acc_uint64l_t ticks;
if (GetProcessTimes(GetCurrentProcess(), &ct, &et, &kt, &ut) == 0)
return -1;
- ticks = ((acc_uint64l_t)ut.dwHighDateTime << 32) | ut.dwLowDateTime;
+ ticks = (ACC_STATIC_CAST(acc_uint64l_t, ut.dwHighDateTime) << 32) | ut.dwLowDateTime;
if __acc_unlikely(h->ticks_base == 0)
h->ticks_base = ticks;
else
ticks -= h->ticks_base;
- c->tv_sec = (acc_int64l_t) (ticks / 10000000ul);
- c->tv_nsec = (acc_uint32l_t)(ticks % 10000000ul) * 100u;
+ c->tv_sec = ACC_STATIC_CAST(acc_int64l_t, (ticks / 10000000ul));
+ ticks = (ticks % 10000000ul) * 100u;
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ticks);
ACC_UNUSED(h); return 0;
}
#endif
@@ -6018,32 +7344,11 @@ static int acc_pclock_read_getrusage(acc_pclock_handle_p h, acc_pclock_p c)
c->tv_sec_high = 0;
c->tv_sec_low = ru.ru_utime.tv_sec;
#endif
- c->tv_nsec = (acc_uint32l_t) (ru.ru_utime.tv_usec * 1000u);
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, (ru.ru_utime.tv_usec * 1000u));
ACC_UNUSED(h); return 0;
}
#endif
-#if (__ACCLIB_PCLOCK_USE_PERFCTR)
-#ifndef acc_pclock_read_perfctr
-#define acc_pclock_read_perfctr acc_pclock_read_perfctr
-#endif
-static int acc_pclock_read_perfctr(acc_pclock_handle_p h, acc_pclock_p c)
-{
- acc_perfctr_clock_t pcc;
- double secs;
- acc_uint64l_t nsecs;
- __ACCLIB_FUNCNAME(acc_perfctr_read)(&h->pch, &pcc);
- if __acc_unlikely(h->ticks_base == 0)
- h->ticks_base = pcc.tsc;
- else
- pcc.tsc -= h->ticks_base;
- secs = pcc.tsc * h->pch.tsc_to_seconds;
- nsecs = (acc_uint64l_t) (secs * 1000000000.0);
- c->tv_sec = nsecs / 1000000000ul;
- c->tv_nsec = (acc_uint32l_t) (nsecs % 1000000000ul);
- ACC_UNUSED(h); return 0;
-}
-#endif
-#if 0 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID) && defined(acc_int64l_t)
+#if 1 && (HAVE_CLOCK_GETTIME) && defined(CLOCK_THREAD_CPUTIME_ID) && defined(acc_int64l_t)
#ifndef acc_pclock_read_clock_gettime_t_libc
#define acc_pclock_read_clock_gettime_t_libc acc_pclock_read_clock_gettime_t_libc
#endif
@@ -6053,7 +7358,7 @@ static int acc_pclock_read_clock_gettime_t_libc(acc_pclock_handle_p h, acc_pcloc
if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts) != 0)
return -1;
c->tv_sec = ts.tv_sec;
- c->tv_nsec = ts.tv_nsec;
+ c->tv_nsec = (acc_uint32l_t) ts.tv_nsec;
ACC_UNUSED(h); return 0;
}
#endif
@@ -6067,7 +7372,7 @@ static int acc_pclock_read_clock_gettime_t_syscall(acc_pclock_handle_p h, acc_pc
if (acc_pclock_syscall_clock_gettime(3, &ts) != 0)
return -1;
c->tv_sec = ts.tv_sec;
- c->tv_nsec = ts.tv_nsec;
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ts.tv_nsec);
ACC_UNUSED(h); return 0;
}
#endif
@@ -6081,13 +7386,14 @@ static int acc_pclock_read_getthreadtimes(acc_pclock_handle_p h, acc_pclock_p c)
acc_uint64l_t ticks;
if (GetThreadTimes(GetCurrentThread(), &ct, &et, &kt, &ut) == 0)
return -1;
- ticks = ((acc_uint64l_t)ut.dwHighDateTime << 32) | ut.dwLowDateTime;
+ ticks = (ACC_STATIC_CAST(acc_uint64l_t, ut.dwHighDateTime) << 32) | ut.dwLowDateTime;
if __acc_unlikely(h->ticks_base == 0)
h->ticks_base = ticks;
else
ticks -= h->ticks_base;
- c->tv_sec = (acc_int64l_t) (ticks / 10000000ul);
- c->tv_nsec = (acc_uint32l_t)(ticks % 10000000ul) * 100;
+ c->tv_sec = ACC_STATIC_CAST(acc_int64l_t, (ticks / 10000000ul));
+ ticks = (ticks % 10000000ul) * 100u;
+ c->tv_nsec = ACC_STATIC_CAST(acc_uint32l_t, ticks);
ACC_UNUSED(h); return 0;
}
#endif
@@ -6095,11 +7401,11 @@ ACCLIB_PUBLIC(int, acc_pclock_open) (acc_pclock_handle_p h, int mode)
{
acc_pclock_t c;
int i;
- h->h = (acclib_handle_t) 0;
+ h->h = ACC_STATIC_CAST(acclib_handle_t, 0);
h->mode = -1;
h->read_error = 2;
h->name = NULL;
- h->gettime = 0;
+ h->gettime = ACC_STATIC_CAST(acc_pclock_gettime_t, 0);
#if defined(acc_int64l_t)
h->ticks_base = 0;
#endif
@@ -6145,13 +7451,6 @@ ACCLIB_PUBLIC(int, acc_pclock_open) (acc_pclock_handle_p h, int mode)
# endif
break;
case ACC_PCLOCK_PROCESS_CPUTIME_ID:
-# if defined(acc_pclock_read_perfctr)
- if (__ACCLIB_FUNCNAME(acc_perfctr_open)(&h->pch) == 0) {
- h->gettime = acc_pclock_read_perfctr;
- h->name = "perfctr";
- break;
- }
-# endif
# if defined(acc_pclock_read_getprocesstimes)
if (acc_pclock_read_getprocesstimes(h, &c) == 0) {
h->gettime = acc_pclock_read_getprocesstimes;
@@ -6207,7 +7506,7 @@ ACCLIB_PUBLIC(int, acc_pclock_open) (acc_pclock_handle_p h, int mode)
if (!h->gettime)
return -1;
if (!h->h)
- h->h = (acclib_handle_t) 1;
+ h->h = ACC_STATIC_CAST(acclib_handle_t, 1);
h->mode = mode;
h->read_error = 0;
if (!h->name)
@@ -6231,13 +7530,10 @@ ACCLIB_PUBLIC(int, acc_pclock_open_default) (acc_pclock_handle_p h)
}
ACCLIB_PUBLIC(int, acc_pclock_close) (acc_pclock_handle_p h)
{
- h->h = (acclib_handle_t) 0;
+ h->h = ACC_STATIC_CAST(acclib_handle_t, 0);
h->mode = -1;
h->name = NULL;
- h->gettime = 0;
-#if (__ACCLIB_PCLOCK_USE_PERFCTR)
- __ACCLIB_FUNCNAME(acc_perfctr_close)(&h->pch);
-#endif
+ h->gettime = ACC_STATIC_CAST(acc_pclock_gettime_t, 0);
return 0;
}
ACCLIB_PUBLIC(void, acc_pclock_read) (acc_pclock_handle_p h, acc_pclock_p c)
@@ -6258,285 +7554,37 @@ ACCLIB_PUBLIC(void, acc_pclock_read) (acc_pclock_handle_p h, acc_pclock_p c)
#if !(ACC_CFG_NO_DOUBLE)
ACCLIB_PUBLIC(double, acc_pclock_get_elapsed) (acc_pclock_handle_p h, const acc_pclock_p start, const acc_pclock_p stop)
{
+ if (!h->h) { h->mode = -1; return 0.0; }
+ {
+#if 1 && (ACC_ARCH_I386 && ACC_CC_GNUC) && defined(__STRICT_ALIGNMENT__)
+ float tstop, tstart;
+ tstop = ACC_STATIC_CAST(float, (stop->tv_sec + stop->tv_nsec / 1000000000.0));
+ tstart = ACC_STATIC_CAST(float, (start->tv_sec + start->tv_nsec / 1000000000.0));
+#elif defined(acc_int64l_t)
double tstop, tstart;
- if (!h->h) {
- h->mode = -1;
- return 0.0;
- }
-#if defined(acc_int64l_t)
+#if 1 && (ACC_CC_INTELC)
+ { acc_int64l_t a = stop->tv_sec; acc_uint32l_t b = stop->tv_nsec;
+ tstop = a + b / 1000000000.0; }
+ { acc_int64l_t a = start->tv_sec; acc_uint32l_t b = start->tv_nsec;
+ tstart = a + b / 1000000000.0; }
+#else
tstop = stop->tv_sec + stop->tv_nsec / 1000000000.0;
tstart = start->tv_sec + start->tv_nsec / 1000000000.0;
+#endif
#else
+ double tstop, tstart;
tstop = stop->tv_sec_low + stop->tv_nsec / 1000000000.0;
tstart = start->tv_sec_low + start->tv_nsec / 1000000000.0;
#endif
return tstop - tstart;
-}
-#endif
-ACCLIB_PUBLIC(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p h, unsigned flags)
-{
- if (h->h) {
-#if (__ACCLIB_PCLOCK_USE_PERFCTR)
- return __ACCLIB_FUNCNAME(acc_perfctr_flush_cpu_cache)(&h->pch, flags);
-#endif
- }
- ACC_UNUSED(h); ACC_UNUSED(flags);
- return -1;
-}
-#if defined(__ACCLIB_PCLOCK_NEED_WARN_POP)
-# if (ACC_CC_MSC && (_MSC_VER >= 1200))
-# pragma warning(pop)
-# else
-# error "__ACCLIB_PCLOCK_NEED_WARN_POP"
-# endif
-# undef __ACCLIB_PCLOCK_NEED_WARN_POP
-#endif
-#endif
-#if defined(ACC_WANT_ACCLIB_UCLOCK)
-# undef ACC_WANT_ACCLIB_UCLOCK
-#define __ACCLIB_UCLOCK_CH_INCLUDED 1
-#if !defined(ACCLIB_PUBLIC)
-# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
-#endif
-#if (ACC_OS_DOS16 || ACC_OS_WIN16)
-#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
-#elif (ACC_OS_CYGWIN || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
-# if ((ACC_CC_DMC && (__DMC__ < 0x838)) || ACC_CC_LCCWIN32)
-# define __ACCLIB_UCLOCK_USE_CLOCK 1
-# else
-# define __ACCLIB_UCLOCK_USE_WINMM 1
-# if (ACC_CC_MSC && (_MSC_VER >= 1200))
-# pragma warning(push)
-# define __ACCLIB_UCLOCK_NEED_WARN_POP 1
-# endif
-# if (ACC_CC_MSC && (_MSC_VER >= 900))
-# pragma warning(disable: 4201)
-# elif (ACC_CC_MWERKS)
-# define LPUINT __ACC_MMSYSTEM_H_LPUINT
-# endif
-# if 1
-# include <mmsystem.h>
-# else
-# if (ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC)
- ACC_EXTERN_C __declspec(dllimport) unsigned long __stdcall timeGetTime(void);
-# else
- ACC_EXTERN_C unsigned long __stdcall timeGetTime(void);
-# endif
-# endif
-# if (ACC_CC_DMC)
-# pragma DMC includelib "winmm.lib"
-# elif (ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC)
-# pragma comment(lib, "winmm.lib")
-# elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3000))
-# pragma comment(lib, "winmm.lib")
-# elif (ACC_CC_SYMANTECC)
-# pragma SC includelib "winmm.lib"
-# elif (ACC_CC_WATCOMC && (__WATCOMC__ >= 1050))
-# pragma library("winmm.lib")
-# endif
-# endif
-#elif (ACC_OS_CYGWIN || ACC_OS_DOS32 || ACC_OS_EMX || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_TOS || ACC_OS_WIN32 || ACC_OS_WIN64)
-# define __ACCLIB_UCLOCK_USE_CLOCK 1
-#elif (ACC_OS_CONSOLE) && defined(CLOCKS_PER_SEC)
-# define __ACCLIB_UCLOCK_USE_CLOCK 1
-#elif (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99) && defined(CLOCKS_PER_SEC)
-# define __ACCLIB_UCLOCK_USE_CLOCK 1
-#endif
-#if (__ACCLIB_UCLOCK_USE_CLOCK) && !defined(CLOCKS_PER_SEC)
-# if defined(CLK_TCK)
-# define CLOCKS_PER_SEC CLK_TCK
-# else
-# undef __ACCLIB_UCLOCK_USE_CLOCK
-# endif
-#endif
-#if (__ACCLIB_UCLOCK_USE_GETRUSAGE)
-# if !defined(RUSAGE_SELF)
-# undef __ACCLIB_UCLOCK_USE_GETRUSAGE
-# endif
-#endif
-ACCLIB_PUBLIC(int, acc_uclock_open) (acc_uclock_handle_p h)
-{
- int i;
-#if (__ACCLIB_UCLOCK_USE_QPC)
- LARGE_INTEGER li;
-#endif
- h->h = (acclib_handle_t) 1;
- h->mode = 0;
- h->read_error = 0;
- h->name = NULL;
-#if (__ACCLIB_UCLOCK_USE_PERFCTR)
- h->pch.h = 0;
- if (h->mode == 0 && __ACCLIB_FUNCNAME(acc_perfctr_open)(&h->pch) == 0)
- h->mode = 2;
-#endif
-#if (__ACCLIB_UCLOCK_USE_QPC)
- h->qpf = 0.0;
- if (h->mode == 0 && QueryPerformanceFrequency(&li) != 0) {
- double d = (double) li.QuadPart;
- if (d > 0.0 && QueryPerformanceCounter(&li) != 0) {
- h->mode = 3;
- h->qpf = d;
- }
- }
-#endif
- for (i = 0; i < 10; i++) {
- acc_uclock_t c;
- __ACCLIB_FUNCNAME(acc_uclock_read)(h, &c);
- }
- return 0;
-}
-ACCLIB_PUBLIC(int, acc_uclock_close) (acc_uclock_handle_p h)
-{
- h->h = (acclib_handle_t) 0;
- h->mode = -1;
- h->name = NULL;
-#if (__ACCLIB_UCLOCK_USE_PERFCTR)
- __ACCLIB_FUNCNAME(acc_perfctr_close)(&h->pch);
-#endif
- return 0;
-}
-ACCLIB_PUBLIC(void, acc_uclock_read) (acc_uclock_handle_p h, acc_uclock_p c)
-{
-#if (__ACCLIB_UCLOCK_USE_RDTSC)
- __ACCLIB_FUNCNAME(acc_tsc_read)((acc_uint32e_t*) (void*) &c->tsc);
-#endif
-#if (__ACCLIB_UCLOCK_USE_PERFCTR)
- if (h->pch.h) {
- __ACCLIB_FUNCNAME(acc_perfctr_read)(&h->pch, &c->pcc);
- if (h->mode > 0 && h->mode <= 2)
- return;
- }
-#endif
-#if (__ACCLIB_UCLOCK_USE_QPC)
- if (h->qpf > 0.0) {
- LARGE_INTEGER li;
- if (QueryPerformanceCounter(&li) != 0) {
- c->qpc = (acc_int64l_t) li.QuadPart;
- if (h->mode > 0 && h->mode <= 3)
- return;
- } else {
- h->mode = 0; h->qpf = 0.0; c->qpc = 0;
- h->read_error = 1;
- }
- }
-#endif
- {
-#if (ACC_OS_DOS16 || ACC_OS_WIN16)
-# if (ACC_CC_AZTECC)
- c->ticks.t32 = 0;
-# else
- union REGS ri, ro;
- ri.x.ax = 0x2c00; int86(0x21, &ri, &ro);
- c->ticks.t32 = ro.h.ch*60UL*60UL*100UL + ro.h.cl*60UL*100UL + ro.h.dh*100UL + ro.h.dl;
-# endif
-#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
- c->ticks.t64 = uclock();
-#elif (__ACCLIB_UCLOCK_USE_CLOCK) && defined(acc_int64l_t)
- c->ticks.t64 = clock();
-#elif (__ACCLIB_UCLOCK_USE_CLOCK)
- c->ticks.t32 = clock();
-#elif (__ACCLIB_UCLOCK_USE_WINMM)
- c->ticks.t32 = timeGetTime();
-#elif (__ACCLIB_UCLOCK_USE_GETRUSAGE)
- struct rusage ru;
- if (getrusage(RUSAGE_SELF, &ru) != 0) c->ticks.td = 0;
- else c->ticks.td = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec / 1000000.0;
-#elif (HAVE_GETTIMEOFDAY)
- struct timeval tv;
- if (gettimeofday(&tv, 0) != 0) c->ticks.td = 0;
- else c->ticks.td = tv.tv_sec + tv.tv_usec / 1000000.0;
-#else
- ACC_UNUSED(c);
-#endif
}
- ACC_UNUSED(h);
}
-ACCLIB_PUBLIC(double, acc_uclock_get_elapsed) (acc_uclock_handle_p h, const acc_uclock_p start, const acc_uclock_p stop)
-{
- double d;
- if (!h->h) {
- h->mode = -1;
- return 0.0;
- }
-#if (__ACCLIB_UCLOCK_USE_RDTSC)
- if (h->mode == 1) {
- if (!h->name) h->name = "rdtsc";
- d = (double) ((acc_int64l_t)stop->tsc - (acc_int64l_t)start->tsc);
- return d / 1000000000.0;
- }
-#endif
-#if (__ACCLIB_UCLOCK_USE_PERFCTR)
- if (h->pch.h && h->mode == 2) {
- if (!h->name) h->name = "perfctr";
- return __ACCLIB_FUNCNAME(acc_perfctr_get_elapsed)(&h->pch, &start->pcc, &stop->pcc);
- }
-#endif
-#if (__ACCLIB_UCLOCK_USE_QPC)
- if (h->qpf > 0.0 && h->mode == 3) {
- if (!h->name) h->name = "qpc";
- if (start->qpc == 0 || stop->qpc == 0) return 0.0;
- return (double) (stop->qpc - start->qpc) / h->qpf;
- }
#endif
-#if (ACC_OS_DOS16 || ACC_OS_WIN16)
- h->mode = 11;
- if (!h->name) h->name = "uclock";
- d = (double) (stop->ticks.t32 - start->ticks.t32) / 100.0;
- if (d < 0.0) d += 86400.0;
-#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
- h->mode = 12;
- if (!h->name) h->name = "uclock";
- d = (double) (stop->ticks.t64 - start->ticks.t64) / (UCLOCKS_PER_SEC);
-#elif (__ACCLIB_UCLOCK_USE_CLOCK) && defined(acc_int64l_t)
- h->mode = 13;
- if (!h->name) h->name = "clock";
- {
- acc_int64l_t t;
- t = stop->ticks.t64 - start->ticks.t64;
- if (t < 0)
- t += sizeof(clock_t) == 4 ? ACC_INT64_C(0x100000000) : ACC_INT64_C(0);
- d = (double) t / (CLOCKS_PER_SEC);
- }
-#elif (__ACCLIB_UCLOCK_USE_CLOCK)
- h->mode = 14;
- if (!h->name) h->name = "clock";
- d = (double) (stop->ticks.t32 - start->ticks.t32) / (CLOCKS_PER_SEC);
-#elif (__ACCLIB_UCLOCK_USE_WINMM)
- h->mode = 15;
- if (!h->name) h->name = "timeGetTime";
- d = (double) (stop->ticks.t32 - start->ticks.t32) / 1000.0;
-#elif (__ACCLIB_UCLOCK_USE_GETRUSAGE)
- h->mode = 16;
- if (!h->name) h->name = "getrusage";
- d = stop->ticks.td - start->ticks.td;
-#elif (HAVE_GETTIMEOFDAY)
- h->mode = 17;
- if (!h->name) h->name = "gettimeofday";
- d = stop->ticks.td - start->ticks.td;
-#else
- h->mode = 0;
- d = 0.0;
-#endif
- return d;
-}
-ACCLIB_PUBLIC(int, acc_uclock_flush_cpu_cache) (acc_uclock_handle_p h, unsigned flags)
+ACCLIB_PUBLIC(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p h, unsigned flags)
{
- if (h->h) {
-#if (__ACCLIB_UCLOCK_USE_PERFCTR)
- return __ACCLIB_FUNCNAME(acc_perfctr_flush_cpu_cache)(&h->pch, flags);
-#endif
- }
ACC_UNUSED(h); ACC_UNUSED(flags);
return -1;
}
-#if defined(__ACCLIB_UCLOCK_NEED_WARN_POP)
-# if (ACC_CC_MSC && (_MSC_VER >= 1200))
-# pragma warning(pop)
-# else
-# error "__ACCLIB_UCLOCK_NEED_WARN_POP"
-# endif
-# undef __ACCLIB_UCLOCK_NEED_WARN_POP
-#endif
#endif
#if defined(ACC_WANT_ACCLIB_MISC)
# undef ACC_WANT_ACCLIB_MISC
@@ -6562,10 +7610,10 @@ ACCLIB_PUBLIC(const char *, acc_getenv) (const char *s)
#if (HAVE_GETENV)
return getenv(s);
#else
- ACC_UNUSED(s); return (const char *) 0;
+ ACC_UNUSED(s); return ACC_STATIC_CAST(const char *, 0);
#endif
}
-ACCLIB_PUBLIC(acclib_handle_t, acc_get_osfhandle) (int fd)
+ACCLIB_PUBLIC(acc_intptr_t, acc_get_osfhandle) (int fd)
{
if (fd < 0)
return -1;
@@ -6667,7 +7715,7 @@ ACCLIB_PUBLIC(int, acc_isatty) (int fd)
#elif (ACC_OS_DOS32 && ACC_CC_WATCOMC)
{
union REGS ri, ro;
- ri.w.ax = 0x4400; ri.w.bx = (unsigned short) fd;
+ ri.w.ax = 0x4400; ri.w.bx = ACC_STATIC_CAST(unsigned short, fd);
int386(0x21, &ri, &ro);
if ((ro.w.cflag & 1) == 0)
if ((ro.w.ax & 0x83) != 0x83)
@@ -6675,11 +7723,12 @@ ACCLIB_PUBLIC(int, acc_isatty) (int fd)
}
#elif (ACC_HAVE_WINDOWS_H)
{
- acclib_handle_t h = __ACCLIB_FUNCNAME(acc_get_osfhandle)(fd);
- if ((HANDLE)h != INVALID_HANDLE_VALUE)
+ acc_intptr_t h = __ACCLIB_FUNCNAME(acc_get_osfhandle)(fd);
+ ACC_COMPILE_TIME_ASSERT(sizeof(h) == sizeof(HANDLE))
+ if (h != -1)
{
DWORD d = 0;
- if (GetConsoleMode((HANDLE)h, &d) == 0)
+ if (GetConsoleMode(ACC_REINTERPRET_CAST(HANDLE, h), &d) == 0)
return 0;
}
}
@@ -6702,15 +7751,14 @@ ACCLIB_PUBLIC(int, acc_mkdir) (const char* name, unsigned mode)
return mkdir(name, mode);
#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
return mkdir(name, mode);
+#elif ((ACC_OS_DOS16 || ACC_OS_DOS32) && (ACC_CC_HIGHC || ACC_CC_PACIFICC))
+ ACC_UNUSED(mode);
+ return mkdir(ACC_UNCONST_CAST(char *, name));
#elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
ACC_UNUSED(mode);
-# if (ACC_CC_HIGHC || ACC_CC_PACIFICC)
- return mkdir((char*) name);
-# else
return mkdir(name);
-# endif
#elif (ACC_CC_WATCOMC)
- return mkdir(name, (mode_t) mode);
+ return mkdir(name, ACC_STATIC_CAST(mode_t, mode));
#else
return mkdir(name, mode);
#endif
@@ -6721,7 +7769,7 @@ ACCLIB_PUBLIC(int, acc_rmdir) (const char* name)
ACC_UNUSED(name);
return -1;
#elif ((ACC_OS_DOS16 || ACC_OS_DOS32) && (ACC_CC_HIGHC || ACC_CC_PACIFICC))
- return rmdir((char *) name);
+ return rmdir(ACC_UNCONST_CAST(char *, name));
#else
return rmdir(name);
#endif
@@ -6733,7 +7781,8 @@ ACCLIB_PUBLIC(acc_int32e_t, acc_muldiv32s) (acc_int32e_t a, acc_int32e_t b, acc_
if __acc_likely(x != 0)
{
#if defined(acc_int64l_t)
- r = (acc_int32e_t) (((acc_int64l_t) a * b) / x);
+ acc_int64l_t rr = (ACC_ICONV(acc_int64l_t, a) * b) / x;
+ r = ACC_ITRUNC(acc_int32e_t, rr);
#else
ACC_UNUSED(a); ACC_UNUSED(b);
#endif
@@ -6746,7 +7795,8 @@ ACCLIB_PUBLIC(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t a, acc_uint32e_t b, a
if __acc_likely(x != 0)
{
#if defined(acc_int64l_t)
- r = (acc_uint32e_t) (((acc_uint64l_t) a * b) / x);
+ acc_uint64l_t rr = (ACC_ICONV(acc_uint64l_t, a) * b) / x;
+ r = ACC_ITRUNC(acc_uint32e_t, rr);
#else
ACC_UNUSED(a); ACC_UNUSED(b);
#endif
@@ -6754,11 +7804,6 @@ ACCLIB_PUBLIC(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t a, acc_uint32e_t b, a
return r;
}
#endif
-#if 0
-ACCLIB_PUBLIC_NOINLINE(int, acc_syscall_clock_gettime) (int c)
-{
-}
-#endif
#if (ACC_OS_WIN16)
ACC_EXTERN_C void __far __pascal DebugBreak(void);
#endif
@@ -6769,16 +7814,15 @@ ACCLIB_PUBLIC_NOINLINE(void, acc_debug_break) (void)
#elif (ACC_ARCH_I086)
#elif (ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
DebugBreak();
-#elif (ACC_CFG_NO_INLINE_ASM) && (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
- DebugBreak();
#elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
- __asm__ __volatile__("int $3\n" : : : __ACC_ASM_CLOBBER);
+ __asm__ __volatile__("int $3\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
__asm { int 3 }
#elif (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
DebugBreak();
#else
- * (volatile int *) 0x1 = -1;
+ volatile acc_intptr_t a = -1;
+ * ACC_STATIC_CAST(volatile unsigned long *, ACC_REINTERPRET_CAST(volatile void *, a)) = ~0ul;
#endif
}
ACCLIB_PUBLIC_NOINLINE(void, acc_debug_nop) (void)
@@ -6787,9 +7831,13 @@ ACCLIB_PUBLIC_NOINLINE(void, acc_debug_nop) (void)
ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query) (void)
{
#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
- size_t r;
- __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : : __ACC_ASM_CLOBBER);
- return (int)(r >> 18) & 1;
+# if (ACC_ARCH_AMD64)
+ acc_uint64e_t r = 0;
+# else
+ size_t r = 0;
+# endif
+ __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
+ return ACC_ICONV(int, (r >> 18) & 1);
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
unsigned long r;
__asm {
@@ -6797,28 +7845,27 @@ ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query) (void)
pop eax
mov r,eax
}
- return (int)(r >> 18) & 1;
+ return ACC_ICONV(int, (r >> 18) & 1);
#else
return -1;
#endif
}
ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_enable) (int v)
{
- int r;
#if (ACC_ARCH_AMD64) && (ACC_ASM_SYNTAX_GNUC)
if (v) {
- __asm__ __volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER);
+ __asm__ __volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
} else {
- __asm__ __volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER);
+ __asm__ __volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
}
- r = 0;
+ return 0;
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
if (v) {
- __asm__ __volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER);
+ __asm__ __volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
} else {
- __asm__ __volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER);
+ __asm__ __volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
}
- r = 0;
+ return 0;
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
if (v) { __asm {
pushf
@@ -6829,21 +7876,20 @@ ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_enable) (int v)
and dword ptr [esp],-262145
popf
}}
- r = 0;
+ return 0;
#else
- r = -1;
+ ACC_UNUSED(v); return -1;
#endif
- ACC_UNUSED(v); return r;
}
ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_qemu) (void)
{
unsigned r = 0;
#if (ACC_OS_POSIX_LINUX || ACC_OS_WIN32 || ACC_OS_WIN64)
const char* p;
- p = __ACCLIB_FUNCNAME(acc_getenv)("ACC_ENV_RUNNING_ON_QEMU");
+ p = __ACCLIB_FUNCNAME(acc_getenv)(ACC_PP_STRINGIZE(ACC_ENV_RUNNING_ON_QEMU));
if (p) {
if (p[0] == 0) r = 0;
- else if ((p[0] >= '0' && p[0] <= '9') && p[1] == 0) r = p[0] - '0';
+ else if ((p[0] >= '0' && p[0] <= '9') && p[1] == 0) r = ACC_ICAST(unsigned, p[0]) - '0';
else r = 1;
}
#endif
@@ -6851,11 +7897,18 @@ ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_qemu) (void)
}
ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void)
{
-#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
- volatile unsigned long args[5] = { 0x1001, 0, 0, 0, 0 };
- unsigned long r = 0;
- __asm__ __volatile__(".byte 0xc1,0xc0,0x1d,0xc1,0xc0,0x03,0xc1,0xc8,0x1b,0xc1,0xc8,0x05,0xc1,0xc0,0x0d,0xc1,0xc0,0x13\n" : "=d" (r) : "a" (&args[0]), "d" (r) : __ACC_ASM_CLOBBER);
- return (unsigned) r;
+#if (ACC_ARCH_AMD64 && ACC_ABI_ILP32)
+ return 0;
+#elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
+ volatile size_t a[6];
+ size_t r = 0;
+ a[0] = 0x1001; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0;
+# if (ACC_ARCH_AMD64)
+ __asm__ __volatile__(".byte 0x48,0xc1,0xc7,0x03,0x48,0xc1,0xc7,0x0d,0x48,0xc1,0xc7,0x3d,0x48,0xc1,0xc7,0x33,0x48,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
+# elif (ACC_ARCH_I386)
+ __asm__ __volatile__(".byte 0xc1,0xc7,0x03,0xc1,0xc7,0x0d,0xc1,0xc7,0x1d,0xc1,0xc7,0x13,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
+# endif
+ return ACC_ITRUNC(unsigned, r);
#else
return 0;
#endif
@@ -6870,7 +7923,7 @@ ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void)
#if !defined(ACCLIB_PUBLIC)
# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
#endif
-#if (ACC_OS_DOS16 || ACC_OS216 || ACC_OS_WIN16)
+#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
#if 0 && (ACC_CC_MSC)
ACC_EXTERN_C int __acc_cdecl __setargv(void);
ACC_EXTERN_C int __acc_cdecl _setargv(void);
@@ -6878,7 +7931,8 @@ ACC_EXTERN_C int __acc_cdecl _setargv(void) { return __setargv(); }
#endif
#endif
#if (ACC_OS_WIN32 || ACC_OS_WIN64)
-#if (ACC_CC_INTELC || ACC_CC_MSC)
+#if (ACC_CC_MSC && (_MSC_VER >= 1900))
+#elif (ACC_CC_INTELC || ACC_CC_MSC)
ACC_EXTERN_C int __acc_cdecl __setargv(void);
ACC_EXTERN_C int __acc_cdecl _setargv(void);
ACC_EXTERN_C int __acc_cdecl _setargv(void) { return __setargv(); }
@@ -6918,4 +7972,4 @@ ACCLIB_PUBLIC(void, acc_wildargv) (int* argc, char*** argv)
#endif
#endif
-/* vim:set ts=4 et: */
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/p_lzo.c b/src/p_lzo.c
index bacb28d..36716a2 100644
--- a/src/p_lzo.c
+++ b/src/p_lzo.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -158,7 +158,7 @@ void lzo_init_compress_header(header_t *h)
# define ALIGN_SIZE 1
#endif
-/* LZO may expand uncompressible data by a small amount */
+/* LZO may expand incompressible data by a small amount */
#define MAX_COMPRESSED_SIZE(x) ((x) + (x) / 16 + 64 + 3)
@@ -192,7 +192,7 @@ static lzo_bool alloc_mem(lzo_uint32 s1, lzo_uint32 s2, lzo_uint32 w)
**************************************************************************/
/* maybe make this an option ? */
-static const lzo_uint block_size = BLOCK_SIZE;
+static const lzo_uint32 block_size = BLOCK_SIZE;
lzo_bool lzo_enter(const header_t *h)
{
@@ -300,7 +300,7 @@ lzo_bool lzo_compress(file_t *fip, file_t *fop, const header_t *h)
{
/* read a block */
l = read_buf(fip, b1, block_size);
- src_len = (l > 0 ? l : 0);
+ src_len = (lzo_uint32) (l > 0 ? l : 0);
/* write uncompressed block size */
write32(fop,src_len);
@@ -352,9 +352,9 @@ lzo_bool lzo_compress(file_t *fip, file_t *fop, const header_t *h)
/* write compressed block size */
if (dst_len < src_len)
- write32(fop,dst_len);
+ write32(fop, (lzo_uint32) dst_len);
else
- write32(fop,src_len);
+ write32(fop, src_len);
/* write checksum of uncompressed block */
if (h->flags & F_ADLER32_D)
@@ -589,7 +589,4 @@ lzo_bool lzo_decompress(file_t *fip, file_t *fop,
#endif /* WITH_LZO */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/s_curses.c b/src/s_curses.c
index 0809b8a..ffbd2e0 100644
--- a/src/s_curses.c
+++ b/src/s_curses.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -406,7 +406,4 @@ screen_t *screen_curses_construct(void)
#endif /* defined(USE_SCREEN) && defined(USE_SCREEN_CURSES) */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/s_djgpp2.c b/src/s_djgpp2.c
index 328d7d7..74c67b6 100644
--- a/src/s_djgpp2.c
+++ b/src/s_djgpp2.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -372,7 +372,4 @@ screen_t *screen_djgpp2_construct(void)
#endif /* defined(USE_SCREEN) && defined(__DJGPP__) */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/s_object.c b/src/s_object.c
index 4970cf0..e23831f 100644
--- a/src/s_object.c
+++ b/src/s_object.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -81,7 +81,4 @@ screen_t *sobject_construct(const screen_t *c, size_t data_size)
#endif /* defined(USE_SCREEN) */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/s_vcsa.c b/src/s_vcsa.c
index b04dfe1..d1a6ed2 100644
--- a/src/s_vcsa.c
+++ b/src/s_vcsa.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -482,7 +482,4 @@ screen_t *screen_vcsa_construct(void)
#endif /* defined(USE_SCREEN) && defined(USE_SCREEN_VCSA) */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/screen.h b/src/screen.h
index 3813c5a..68cb8ff 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -100,7 +100,4 @@ void screen_show_frames(screen_t *);
#endif /* already included */
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/util.c b/src/util.c
index db50f56..ba1e2ef 100644
--- a/src/util.c
+++ b/src/util.c
@@ -2,7 +2,7 @@
This file is part of the lzop file compressor.
- Copyright (C) 1996-2010 Markus Franz Xaver Johannes Oberhumer
+ Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved.
lzop and the LZO library are free software; you can redistribute them
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation, Inc.,
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Markus F.X.J. Oberhumer
<markus@oberhumer.com>
@@ -233,12 +233,15 @@ void tm2str(char *s, size_t size, const struct tm *tmp)
assert(size >= 18);
#if defined(HAVE_SNPRINTF)
snprintf(s, size, "%04d-%02d-%02d %02d:%02d:%02d",
+ (int) tmp->tm_year + 1900, (int) tmp->tm_mon + 1,
+ (int) tmp->tm_mday,
+ (int) tmp->tm_hour, (int) tmp->tm_min, (int) tmp->tm_sec);
#else
sprintf(s, "%04d-%02d-%02d %02d:%02d:%02d",
-#endif
(int) tmp->tm_year + 1900, (int) tmp->tm_mon + 1,
(int) tmp->tm_mday,
(int) tmp->tm_hour, (int) tmp->tm_min, (int) tmp->tm_sec);
+#endif
}
#endif
@@ -675,7 +678,4 @@ char *maybe_rename_file(const char *original_name)
#endif
-/*
-vi:ts=4:et
-*/
-
+/* vim:set ts=4 sw=4 et: */
diff --git a/src/version.h b/src/version.h
index d8457b0..d3d2df0 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1,3 +1,5 @@
-#define LZOP_VERSION 0x1030
-#define LZOP_VERSION_STRING "1.03"
-#define LZOP_VERSION_DATE "Nov 1st 2010"
+#define LZOP_VERSION 0x1040
+#define LZOP_VERSION_STRING "1.04"
+#define LZOP_VERSION_DATE "Aug 10th 2017"
+
+/* vim:set ts=4 sw=4 et: */