[all-commits] [llvm/llvm-project] dbf3ca: [clangd] check for synthesized symbols when tracki...
Matheus Izvekov via All-commits
all-commits at lists.llvm.org
Mon Dec 11 18:10:05 PST 2023
Branch: refs/heads/users/mizvekov/bug/clangd-msvc-assert-crash-fix
Home: https://github.com/llvm/llvm-project
Commit: dbf3ca258b70aa591f14300ba18dcc6b8d35de40
https://github.com/llvm/llvm-project/commit/dbf3ca258b70aa591f14300ba18dcc6b8d35de40
Author: Matheus Izvekov <mizvekov at gmail.com>
Date: 2023-12-11 (Mon, 11 Dec 2023)
Changed paths:
M clang-tools-extra/clangd/index/SymbolCollector.cpp
M clang-tools-extra/clangd/test/GH75115.test
Log Message:
-----------
[clangd] check for synthesized symbols when tracking include locations
This fixes https://github.com/llvm/llvm-project/issues/75115
In C mode with MSVC compatibility, when the `assert` macro is defined,
as a workaround, `static_assert` is implicitly defined as well,
if not already so, in order to work around a broken `assert.h`
implementation.
This workaround was implemented in https://github.com/llvm/llvm-project/commit/8da090381d567d0ec555840f6b2a651d2997e4b3
A synthesized symbol does not occur in source code, and therefore
should not have valid source location, but this was not checked when
inserting this into a map symbol -> include file map.
The invalid FileID value is used for empty key representation in
the include file map hash table, and it's not valid to insert it,
causing the crash.
More information about the All-commits
mailing list