There is never whitespace between the 'L' and the string literal or the
character constant. There might be a backslash-newline between them, but
that case was not handled before either.
No functional change.
Since these objects are unnamed, they cannot be referenced by other
files or even create name clashes.
Seen in usr.sbin/cpuctl/aarch64.c, reported by Christos.
Seen in usr.sbin/cpuctl/aarch64.c line 118.
error: aarch64.ln:857:
not alnum or _: (for '118d-1.0d1200000000_tmpA16PcC')
The name 00000000_tmp was not supposed to be exported.
This provides more of a clue than a simple '(not alnum or _: )',
especially in the output of build.sh.
While here, change the format of the error message to the standard
'%s:%d'. Since these are internal errors, they are not supposed to occur
often, so no need to change error(1).
In regular expressions, a backslash must be doubled. In this case, ATF
didn't complain because the single backslashes were used in the pattern
'\($2\)', where they produced '\(...\\)'. Omitting the backslash for the
closing parenthesis was apparently OK; other regex implementations
complain about this.
atf_fail "failed to trigger PR kern/56252" without a corresponding
atf_expect_fail "PR kern/56252", which makes no sense. Since the
test case does occasionally fail on real hardware, fix this by adding
the atf_expect_fail rather than by removing the atf_fail.
The file gets formatted until the end, despite the parse error. This may
destroy layout details of the code but usually preserves the overall
structure. Since all source code is supposed to be under version
control, this is not a problem.
The fixed version is not perfect as it gets the indentation of the last
line of the first comment wrong, but at least indent doesn't generate
malformed output anymore.
Before lexi.c 1.157 from 2021-11-25, the option '-npsl' had been
necessary to prevent a wrong line break, as indent wrongly interpreted
the function declaration as a function definition, just because the
first ')' in the declaration line was not immediately followed by a ','
or ';'.
Collected by indenting usr.bin/make with the default profile.
The heuristic for distinguishing between type names and other
identifiers is way too primitive, it seems to have stopped evolving
somewhere before function prototypes were standardized in C90, at least
it handles function prototypes poorly.
indent-2014.09.04.04.06.07 added seemingly random spaces to
declarations, which were fixed in indent-2019.04.04.15.27.35, which came
5 years later. The latter commit introduced many new bugs, but it also
fixed this one.
The wrongly indented struct member declaration for HashTable has been
there since at least indent-2000.10.11.14.46.04.
The wrongly indented initializer expression was added in
indent-2019.04.04.15.27.35 (see above).
/bin/sh's processing of here doc expansions has changed. Now it happens
in the context of the parent shell, so side effects are visible there,
just like all other redirection expansions.
We need to stop testing that that doesn't happen, and instead test
that it does. This is that change.
Add another test case which is testing exactly the example from the PR
(well, with a different exit status, 1 is too generic and could happen
by accident) to make sure we don't reintroduce that bug sometime.
which allows the atf_check to fail without causing the test to fail
(unless this is the (very) last command in the test case, in which case it
will fail with what can be interpreted as an internal error)/
Check for this failing and explicitly atf_fail whwn it does.
often fail when run on QEMU because QEMU misses clock interrupts.
Always check timespec against expected "tv_sec" and use an "4 * tv_sec"
upper bound when run under QEMU.
Now becomes part of PR kern/43997 "Kernel timer discrepancies".