[all-commits] [llvm/llvm-project] 582f04: [CGExprConstant] stop calling into ConstExprEmitte...
Martin Storsjö via All-commits
all-commits at lists.llvm.org
Sun Nov 12 23:25:03 PST 2023
Branch: refs/heads/release/17.x
Home: https://github.com/llvm/llvm-project
Commit: 582f0469dae1d2ca946a38d05a55e60521ccafe4
https://github.com/llvm/llvm-project/commit/582f0469dae1d2ca946a38d05a55e60521ccafe4
Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
Date: 2023-11-13 (Mon, 13 Nov 2023)
Changed paths:
M clang/lib/CodeGen/CGExprConstant.cpp
M clang/test/CodeGenCXX/const-init-cxx11.cpp
Log Message:
-----------
[CGExprConstant] stop calling into ConstExprEmitter for Reference type destinations (#70366)
Fixes a bug introduced by
commit b54294e2c959 ("[clang][ConstantEmitter] have
tryEmitPrivate[ForVarInit] try ConstExprEmitter fast-path first")
In the added test case, the QualType is a LValueReferenceType.
LValueReferenceType 0x558412998d90 'const char (&)[41]'
`-ParenType 0x558412998d30 'const char[41]' sugar
`-ConstantArrayType 0x558412998cf0 'const char[41]' 41
`-QualType 0x55841294c271 'const char' const
`-BuiltinType 0x55841294c270 'char'
Fixes: #69979
(cherry picked from commit d9b15b068d19089f72fc0d7dc59ed1d6d77125dc)
Commit: 910748f4ec5a73b6c4c1f5aa433fbe71b0b2b315
https://github.com/llvm/llvm-project/commit/910748f4ec5a73b6c4c1f5aa433fbe71b0b2b315
Author: Martin Storsjö <martin at martin.st>
Date: 2023-11-13 (Mon, 13 Nov 2023)
Changed paths:
M clang/lib/Interpreter/CMakeLists.txt
Log Message:
-----------
[clang-repl] Fix BUILD_SHARED_LIBS symbols from libclangInterpreter on MinGW (#71393)
A few symbols within libclangInterpreter have got explicit dllexport
attributes, in order to make them exported (and thus visible at runtime)
in any build, not only when they are part of e.g. a DLL libclang-cpp,
but also when they are part of a plain .exe.
Due to the explicit dllexports, these symbols would sidestep the regular
MinGW logic of exporting all symbols if there are no dllexports.
Therefore, for libclang-cpp, a separate fix was made in
592e935e115ffb451eb9b782376711dab6558fe0, to pass --export-all-symbols
to the build of libclang-cpp.
If building with BUILD_SHARED_LIBS enabled, then the same issue appears
in libclangInterpreter; pass the same flag --export-all-symbols there as
well, to make sure all symbols are visible, not only the ones that are
explicitly marked as dllexport.
(cherry picked from commit 0d3eeac8c0f45410398a87f72ae38ea6ae1c3073)
Compare: https://github.com/llvm/llvm-project/compare/309d55140c46...910748f4ec5a
More information about the All-commits
mailing list