| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Read the BOM sequentially and store the read bytes for later use if
these do not correspond to a BOM. This allows FIFO to be used as input,
e.g., for piping input or Bash process substitution.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
```
git grep -lz 'Copyright.txt or https://cmake.org/licensing ' |
while IFS= read -r -d $'\0' f ; do
sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / {
s/Copyright.txt/LICENSE.rst/
}' "$f" ; done
```
|
| |
|
|
|
| |
These were used only for the CMP0053 OLD behavior, which has
now been removed.
|
| |
|
|
|
|
|
| |
Support escaped colons in windows paths containing driver letters
(e.g. `c\:\\`) when parsing depfiles.
Fixes: #25943
|
| | |
|
| |
|
|
|
|
| |
`include-what-you-use` diagnostics, in practice, are specific to
the environment's compiler and standard library. Update includes
to satisfy IWYU for our CI job under Debian 12.
|
| |
|
|
|
| |
The line directives have the form `#line <path> <number>`, and do not
have the line number before the path as other compilers do.
|
| |
|
|
|
|
|
|
|
| |
Since commit 219a9b1e14 (Fortran: Fix suprious dependencies with
submodules, 2022-07-30, v3.25.0-rc1~327^2) we accidentally fail to
recognize `end interface X`, causing all subsequent modules to be seen
as an interface.
Fixes: #24203
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In commit 695f0d0d3a (cmFortranParser: Parse keywords as lexical tokens,
2016-09-05, v3.7.0-rc1~150^2) we created keyword-specific variants of
the original `USE WORD other EOSTMT` production, such as
`MODULE WORD other EOSTMT` and `INTERFACE WORD other EOSTMT`. The same
pattern was used by more keyword-specific productions in commit b5ac8b8aa7
(Fortran: Add support for submodule syntax in dependency scanning,
2016-09-05, v3.7.0-rc1~73^2~1).
The postfix part (`other`) of several keyword-specific productions is
not needed to match Fortran syntax. See the Fortran 2018 standard,
para.4.1.4/1 on p.28, para.14.2.1/2 on pp.293-294. The postfix is
needed only for a case of operator 'use':
use <module-name> [, only : <list-of-vars>]
The unnecessary postfix matching from the keyword-specific productions
such as module, submodule, and interface declarations can cause spurious
module dependencies to be detected, so remove it.
Extend the test suite with examples covering the previously-broken
cases.
Fixes: #18427
|
| |
|
|
|
|
|
| |
We read sources in binary format, so we need to explicitly match CR
(`\r`) characters that occur as part of newlines in CRLF sources.
This is particularly important when line continuation (`&`) occurs
in the middle of module declaration or usage.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Fixes: #21463
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Adjust expected test output.
|
| |
|
|
|
| |
This was needed to avoid warnings while compiling the sources generated
by older versions of GNU Bison, but is not with GNU Bison 3.7.4.
|
| |
|
|
| |
Silence Bison warnings regarding use of Bison extensions.
|
| |
|
|
|
| |
Fix some of the semantics of the depfile, add error handling, and
refactor cmGccDepfileLexerHelper.
|
| |
|
|
|
|
|
|
| |
Old implementation uses involved Flex input management technique that
requires usage of obsolete YY_INPUT macro. This causes a lot of useless
allocations and byte-by-byte scanning. New implementation avoids those
hacks, it uses yy_scan_string() API to setup Flex input. Also it fixes
reporting of syntax error position and corresponding tests.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
Introduce the function cmReadGccDepfile that parses a GCC-style depfile
and returns its content. The implementation uses a lexer that is
modeled after the re2c implementation in Ninja.
The sample files of the autotest have been created with gcc 8.3.0.
This depfile reader is to be used by the Autogen facility to make use
of the depfiles that are generated by Qt's meta object compiler.
|
| |
|
|
| |
Issue: #18188
|
| | |
|
| |
|
|
|
| |
The corresponding test property `PROCESSES` has been renamed to
`RESOURCE_GROUPS`.
|
| | |
|
| |
|
|
| |
Fixes: #19252
|
| |
|
|
| |
Run `Utilities/Scripts/regenerate-parsers.bash`.
|
| | |
|
| |
|
|
|
|
|
| |
The `cmsys/Enconding.h` include had a typo in its surrounding ifdef,
possibly causing a missing function declaration (`cmsysEncoding_DupToWide`).
As this is C code, this resulted in the code compiling, but with a truncated
return value, possibly causing crashes.
|
| |
|
|
| |
Suppress one in code generated by flex.
|
| |
|
|
|
|
|
| |
clang scan-build warns about YY_CURRENT_BUFFER_LVALUE being zero-
allocated, but the whole point of the macro is to know that it's
not zero. Wrap the entire file in an "#ifndef __clang_analyzer__"
block in order to suppress the warning.
|
| |
|
|
|
|
|
|
| |
The lexical token expression added by commit v3.7.0-rc1~73^2~1 (Fortran:
Add support for submodule syntax in dependency scanning, 2016-09-05)
has a typo and does not match upper-case `B` in `SUBMODULE`. Fix it.
Fixes: #18595
|
| |
|
|
|
| |
GCC 8 warns about some of the conversions in bison-generated code.
Suppress the warnings.
|
| |
|
|
|
|
|
|
| |
Prior to commit 7c4c13ffef (math: Reject unexpected expression input
explicitly, 2018-05-18) we ignored unexpected characters in an
expression that otherwise can be parsed. In order to preserve
compatibility with projects that accidentally used this, convert the
error to a warning.
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
5dbee9d2d0 math: Add options to calculate and format output as hexadecimal
8661e7052c math: Diagnose divide-by-zero
7c4c13ffef math: Reject unexpected expression input explicitly
5b0f73a15a math: Use 64-bit integer type for computation
963b8d9f6c math: Add RunCMake.math test to prepare for error cases
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2056
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
Switch to C++ exceptions for lexer/parser error handling.
Teach the lexer/parser to fail on unexpected input.
|
| |/
|
|
|
|
|
|
|
|
|
| |
Extend the fix from commit v3.10.0-rc1~188^2 (ListFileLexer: fix
heap-buffer-overflow on malicious input, 2017-08-26) to apply to all
lexer token matches. Replace all `.` with `[^\0\n]`. Update all
`[^...]` match expressions to not match `\0`.
We cannot safely process null bytes in strings.
Fixes: #18124
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit v3.7.0-rc1~73^2~1 (Fortran: Add support for submodule
syntax in dependency scanning, 2016-09-05) we support parsing Fortran
sources that use submodule syntax, but it left addition of `.smod`
dependencies to future work. Add it now.
The syntax
submodule (module_name) submodule_name
means the current source requires `module_name.mod` and provides
`module_name@submodule_name.smod`. The syntax
submodule (module_name:submodule_name) nested_submodule_name
means the current source requires `module_name@submodule_name.smod`
provides `module_name@nested_submodule_name.smod`.
Fixes: #17017
|