Dale Weiler [Sat, 24 May 2014 13:53:38 +0000 (09:53 -0400)]
Perliminary work on arithmetic exception handling in the constant evaluator. We can safely check for arithmetic underflow, overflow, divison by zero and inexactness now. Inexactness of expressions are propagated through the AST such that using an inexact value in a comparison will trigger a warning with -Winexact-compares.
Dale Weiler [Fri, 9 May 2014 06:39:25 +0000 (02:39 -0400)]
On platforms that the byte order check fails on the runtime test is concluded instead. It still needs these swap functions at compile time since the runtime test has to run. This fixes a FTBFS on BE selected ARMs.
Only increment the buffer location for macro output whitespace stripping if the situation is actually stripable, otherwise macros like #define foo(X) bar(#X), with foo(test) will expand to bartest) instead of bar(test). This should fix Xonotic builds.
Added memory protection to prevent mismatching of mem_d or vec_free on pointers which are otherwise unknown to be allocated memory or allocated vectors. Also fixed the preprocessor to only strip on ' ' and '\t' around macros.
Jim Thoenen [Sun, 2 Feb 2014 06:57:02 +0000 (00:57 -0600)]
Big-endian: Byteswap only the field contents when writing progs.dat
The previous code swapped not just the fields' contents themselves, but
also field positions within several of the structs, resulting in a
non-working progs.dat when compiled on big endian (ppc in my case).
Swapping on a field-by-field basis now.
Also:
* Addresses weird swap size requests (30+ bytes in one case)
* Take a guess at the right way to log a weird swap request before dying
* Fix swap array length scaling
* Rename the main swap function to reflect its native->little-endian
purpose. Figued that was okay because progs.dat is required to be
always little-endian...
* Add a non-array version of the swap function for convenience
Anton Balashov [Sun, 26 Jan 2014 08:14:18 +0000 (12:14 +0400)]
Fix hyphen-used-as-minus-sign in gmqcc.1
I: gmqcc: hyphen-used-as-minus-sign usr/share/man/man1/gmqcc.1.gz:338
N:
N: This manual page seems to contain a hyphen where a minus sign was
N: intended. By default, "-" chars are interpreted as hyphens (U+2010) by
N: groff, not as minus signs (U+002D). Since options to programs use
minus
N: signs (U+002D), this means for example in UTF-8 locales that you
cannot
N: cut and paste options, nor search for them easily. The Debian
groff
N: package currently forces "-" to be interpreted as a minus sign due
to
N: the number of manual pages with this problem, but this is a
N: Debian-specific modification and hopefully eventually can be
removed.
N:
N: "-" must be escaped ("\-") to be interpreted as minus. If you
really
N: intend a hyphen (normally you don't), write it as "\(hy" to
emphasise
N: that fact. See groff(7) and especially groff_char(7) for details,
and
N: also the thread starting with
N:
http://lists.debian.org/debian-devel/2003/debian-devel-200303/msg01481.html
N:
N: If you use some tool that converts your documentation to groff
format,
N: this tag may indicate a bug in the tool. Some tools convert dashes
of
N: any kind to hyphens. The safe way of converting dashes is to
convert
N: them to "\-".
N:
N: Because this error can occur very often, Lintian shows only the
first 10
N: occurrences for each man page and give the number of suppressed
N: occurrences. If you want to see all warnings, run Lintian with the
N: -d/--debug option.
N:
N: Refer to /usr/share/doc/groff-base/README.Debian and the
groff_char(7)
N: manual page for details.
N:
N: Severity: wishlist, Certainty: possible")"
Wolfgang Bumiller [Tue, 7 Jan 2014 13:33:26 +0000 (14:33 +0100)]
Adding coverage support:
The -coverage option causes all values have AST_FLAG_BLOCK_COVERAGE
set by default.
The coverage attribute can be used to control coverage:
It takes an optional list of coverage types, currently only "block"
and "none" is recognized.
[[coverage]] defaults to [[coverage(block)]].
Use [[coverage(none)]] or [[coverage()]] to disable.
Wolfgang Bumiller [Thu, 28 Nov 2013 11:04:01 +0000 (12:04 +0100)]
static variables now don't get re-initialized in functions; cannot be initialized with non-constants anymore; and a counter has been added so you can use the same name in a different scope for another static variable again.