commit | 0f1ab18c216baa9fc7d1fca0212a2fc3e48eb712 | [log] [tgz] |
---|---|---|
author | Fangrui Song <i@maskray.me> | Wed Mar 06 17:19:59 2024 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Mar 06 17:45:24 2024 -0800 |
tree | 8b624aae214dbeda41117f612d7f8056dfb7b61d | |
parent | 39188b455e622955a94a4a60991e4f60d923e133 [diff] |
[ELF] Reject error-prone meta characters in input section description The lexer is overly permissive. When parsing file patterns in an input section description and there is a missing `)`, we would accept many non-sensible tokens (e.g. `}`) as patterns, leading to confusion, e.g. `*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.text*)) } PROVIDE_HIDDEN(__code_end = .)` (#81804). Ideally, the lexer should be stateful to report more errors like GNU ld and get rid of hacks like `ScriptLexer::maybeSplitExpr`, but that would require a large rewrite of the lexer. For now, just reject certain non-wildcard meta characters to detect common mistakes. Pull Request: https://github.com/llvm/llvm-project/pull/84130 GitOrigin-RevId: 551e20d190868fe47f8efbfd1dbf38191cc2c95d
This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.
lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.
In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.
It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz
The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f
.