aboutsummaryrefslogtreecommitdiff
path: root/clang
AgeCommit message (Collapse)AuthorFilesLines
2024-03-19[C++20] [Moduls] Avoid computing odr hash for functions from comparing ↵Chuanqi Xu9-18/+93
constraint expression Previously we disabled to compute ODR hash for declarations from the global module fragment. However, we missed the case that the functions lives in the concept requiments (see the attached the test files for example). And the mismatch causes the potential crashment. Due to we will set the function body as lazy after we deserialize it and we will only take its body when needed. However, we don't allow to take the body during deserializing. So it is actually potentially problematic if we set the body as lazy first and computing the hash value of the function, which requires to deserialize its body. So we will meet a crash here. This patch tries to solve the issue by not taking the body of the function from GMF. Note that we can't skip comparing the constraint expression from the GMF directly since it is an key part of the function selecting and it may be the reason why we can't return 0 directly for `FunctionDecl::getODRHash()` from the GMF.
2024-03-19[WebAssembly] Change the default linker for `wasm32-wasip2` (#84569)Alex Crichton3-3/+50
This commit changes the default linker in the WebAssembly toolchain for the `wasm32-wasip2` target. This target is being added to the WebAssembly/wasi-sdk and WebAssembly/wasi-libc projects to target the Component Model by default, in contrast with the preexisting `wasm32-wasi` target (in the process of being renamed to `wasm32-wasip1`) which outputs a core WebAssembly module by default. The `wasm-component-ld` project currently lives in my GitHub account at https://github.com/alexcrichton/wasm-component-ld and isn't necessarily "official" yet, but it's expected to continue to evolve as the `wasm32-wasip2` target continues to shape up and evolve. (cherry picked from commit d66121d74a458e098511b9de920d815440acaa1b)
2024-03-15[clang][modules] giving the __stddef_ headers their own modules can cause ↵Ian Anderson13-41/+80
redeclaration errors with -fbuiltin-headers-in-system-modules (#84127) On Apple platforms, some of the stddef.h types are also declared in system headers. In particular NULL has a conflicting declaration in <sys/_types/_null.h>. When that's in a different module from <__stddef_null.h>, redeclaration errors can occur. Make the \_\_stddef_ headers be non-modular in -fbuiltin-headers-in-system-modules and restore them back to not respecting their header guards. Still define the header guards though. __stddef_max_align_t.h was in _Builtin_stddef_max_align_t prior to the addition of _Builtin_stddef, and it needs to stay in a module because struct's can't be type merged. __stddef_wint_t.h didn't used to have a module, but leave it in it current module since it doesn't really belong to stddef.h. (cherry picked from commit f50d3582b4844b86ad86372028e44b52c560ec7d)
2024-03-13SystemZ release notes for 18.x. (#84560)Jonas Paulsson1-0/+5
2024-03-12[Clang][LoongArch] Fix wrong return value type of __iocsrrd_h (#84100)wanglei3-9/+9
relate: https://gcc.gnu.org/pipermail/gcc-patches/2024-February/645016.html (cherry picked from commit 2f479b811274fede36535e34ecb545ac22e399c3)
2024-03-12[Clang][LoongArch] Precommit test for fix wrong return value type of ↵wanglei2-10/+40
__iocsrrd_h. NFC (cherry picked from commit aeda1a6e800e0dd6c91c0332b4db95094ad5b301)
2024-03-12[analyzer] Fix crash on dereference invalid return value of ↵Exile2-1/+12
getAdjustedParameterIndex() (#83585) Fixes #78810 Thanks for Snape3058 's comment --------- Co-authored-by: miaozhiyuan <miaozhiyuan@feysh.com> (cherry picked from commit d4687fe7d1639ea5d16190c89a54de1f2c6e2a9a)
2024-03-12[Clang] [Sema] Handle placeholders in '.*' expressions (#83103)Sirraide3-5/+40
When analysing whether we should handle a binary expression as an overloaded operator call or a builtin operator, we were calling `checkPlaceholderForOverload()`, which takes care of any placeholders that are not overload sets—which would usually make sense since those need to be handled as part of overload resolution. Unfortunately, we were also doing that for `.*`, which is not overloadable, and then proceeding to create a builtin operator anyway, which would crash if the RHS happened to be an unresolved overload set (due hitting an assertion in `CreateBuiltinBinOp()`—specifically, in one of its callees—in the `.*` case that makes sure its arguments aren’t placeholders). This pr instead makes it so we check for *all* placeholders early if the operator is `.*`. It’s worth noting that, 1. In the `.*` case, we now additionally also check for *any* placeholders (not just non-overload-sets) in the LHS; this shouldn’t make a difference, however—at least I couldn’t think of a way to trigger the assertion with an overload set as the LHS of `.*`; it is worth noting that the assertion in question would also complain if the LHS happened to be of placeholder type, though. 2. There is another case in which we also don’t perform overload resolution—namely `=` if the LHS is not of class or enumeration type after handling non-overload-set placeholders—as in the `.*` case, but similarly to 1., I first couldn’t think of a way of getting this case to crash, and secondly, `CreateBuiltinBinOp()` doesn’t seem to care about placeholders in the LHS or RHS in the `=` case (from what I can tell, it, or rather one of its callees, only checks that the LHS is not a pseudo-object type, but those will have already been handled by the call to `checkPlaceholderForOverload()` by the time we get to this function), so I don’t think this case suffers from the same problem. This fixes #53815. --------- Co-authored-by: Aaron Ballman <aaron@aaronballman.com>
2024-03-11[clang][fat-lto-objects] Make module flags match non-FatLTO pipelines (#83159)Paul Kirth2-17/+36
In addition to being rather hard to follow, there isn't a good reason why FatLTO shouldn't just share the same code for setting module flags for (Thin)LTO. This patch simplifies the logic and makes sure we use set these flags in a consistent way, independent of FatLTO. Additionally, we now test that output in the .llvm.lto section actually matches the output from Full and Thin LTO compilation. (cherry picked from commit 7d8b50aaab8e0f935e3cb1f3f397e98b9e3ee241)
2024-02-27MIPS: Fix asm constraints "f" and "r" for softfloat (#79116)llvmorg-18.1.0-rc4llvmorg-18.1.0YunQiang Su3-1/+23
This include 2 fixes: 1. Disallow 'f' for softfloat. 2. Allow 'r' for softfloat. Currently, 'f' is accpeted by clang, then LLVM meets an internal error. 'r' is rejected by LLVM by: couldn't allocate input reg for constraint 'r'. Fixes: #64241, #63632 --------- Co-authored-by: Fangrui Song <i@maskray.me> (cherry picked from commit c88beb4112d5bbf07d76a615ab7f13ba2ba023e6)
2024-02-26[AArch64] Add the Ampere1B core (#81297)Philipp Tomsich2-2/+3
The Ampere1B is Ampere's third-generation core implementing a superscalar, out-of-order microarchitecture with nested virtualization, speculative side-channel mitigation and architectural support for defense against ROP/JOP style software attacks. Ampere1B is an ARMv8.7+ implementation, adding support for the FEAT WFxT, FEAT CSSC, FEAT PAN3 and FEAT AFP extensions. It also includes all features of the second-generation Ampere1A, such as the Memory Tagging Extension and SM3/SM4 cryptography instructions. (cherry picked from commit fbba818a78f591d89f25768ba31783714d526532)
2024-02-26[AArch64] Make +pauth enabled in Armv8.3-a by default (#78027)Anatoly Trosinenko3-20/+26
Add AEK_PAUTH to ARMV8_3A in TargetParser and let it propagate to ARMV8R, as it aligns with GCC defaults. After adding AEK_PAUTH, several tests from TargetParserTest.cpp crashed when trying to format an error message, thus update a format string in AssertSameExtensionFlags to account for bitmask being pre-formatted as std::string. The CHECK-PAUTH* lines in aarch64-target-features.c are updated to account for the fact that FEAT_PAUTH support and pac-ret can be enabled independently and all four combinations are possible. (cherry picked from commit a52eea66795018550e95c4b060165a7250899298)
2024-02-26[Clang] Fixes to immediate-escalating functions (#82281)cor3ntin4-3/+36
* Consider that immediate escalating function can appear at global scope, fixing a crash * Lambda conversion to function pointer was sometimes not performed in an immediate function context when it should be. Fixes #82258 (cherry picked from commit baf6bd303bd58a521809d456dd9b179636982fc5)
2024-02-26[clang][CodeGen] Keep processing the rest of AST after encountering ↵Wentao Zhang1-4/+7
unsupported MC/DC expressions (#82464) Currently, upon seeing unsupported decisions (more than 6 conditions, or split nesting), the post-visitor hook dataTraverseStmtPost() returns a false. As a result, in the rest of tree even supported decisions will be skipped as well. Like in the below code: { // CompoundStmt a && b; // 1: BinaryOperator (supported) a && foo(b && c); // 2: BinaryOperator (not yet supported due to split // nesting) a && b; // 3: BinaryOperator (supported) } Decision 3 will not be processed at all. And only one "Decision" region will be emitted. Compiler explorer example: https://godbolt.org/z/Px61sesoo We hope to process such cases and emit two "Decision" regions (1 and 3) in the above example. (cherry picked from commit d4bfca3b2e673789f7c278d46a199ae8910ddd37)
2024-02-26fix links on clang 18.1.0rc release page (#82739)h-vetinari1-23/+23
Looking at the [release notes](https://prereleases.llvm.org/18.1.0/rc3/tools/clang/docs/ReleaseNotes.html) for clang 18.1.0rc, there's some broken links, and many issue numbers mis-formatted with an extra colon. Aside from being used inconsistently (with/without colon), I think it should be uncontroversial that `See (#62707).` is better than `See (#62707:).` CC @tstellar @AaronBallman Co-authored-by: Aaron Ballman <aaron@aaronballman.com>
2024-02-23ReleaseNotes: mention -mtls-dialect=desc (#82731)Fangrui Song1-0/+1
2024-02-20[Serialization] Record whether the ODR is skipped (#82302)Chuanqi Xu5-10/+154
Close https://github.com/llvm/llvm-project/issues/80570. In https://github.com/llvm/llvm-project/commit/a0b6747804e46665ecfd00295b60432bfe1775b6, we skipped ODR checks for decls in GMF. Then it should be natural to skip storing the ODR values in BMI. Generally it should be fine as long as the writer and the reader keep consistent. However, the use of preamble in clangd shows the tricky part. For, ``` // test.cpp module; // any one off these is enough to crash clangd // #include <iostream> // #include <string_view> // #include <cmath> // #include <system_error> // #include <new> // #include <bit> // probably many more // only ok with libc++, not the system provided libstdc++ 13.2.1 // these are ok export module test; ``` clangd will store the headers as preamble to speedup the parsing and the preamble reuses the serialization techniques. (Generally we'd call the preamble as PCH. However it is not true strictly. I've tested the PCH wouldn't be problematic.) However, the tricky part is that the preamble is not modules. It literally serialiaze and deserialize things. So before clangd parsing the above test module, clangd will serialize the headers into the preamble. Note that there is no concept like GMF now. So the ODR bits are stored. However, when clangd parse the file actually, the decls from preamble are thought as in GMF literally, then hte ODR bits are skipped. Then mismatch happens. To solve the problem, this patch adds another bit for decls to record whether or not the ODR bits are skipped. (cherry picked from commit 49775b1dc0cdb3a9d18811f67f268e3b3a381669)
2024-02-16[18.x][Docs] Add release note about Clang-defined target OS macros (#80044)Zixu Wang1-0/+25
The change is included in the 18.x release. Move the release note to the release branch and reformat. (cherry picked from commit b40d5b1b08564d23d5e0769892ebbc32447b2987)
2024-02-15[analyzer][docs] Admit that the cleanup attribute is not supported (#81834)Balazs Benics1-3/+0
In fact, the cleanup attribute is only added to the CFG, but still unhandled by CSA. I propose dropping this false "support" statement from the docs.
2024-02-15[PowerPC] Update V18.1.0 release notes (#81631)Maryam Moghadas1-0/+26
Adding PowerPC updates for clang and llvm into the V18.1.0 release notes. --------- Co-authored-by: Maryam Moghadas <maryammo@ca.ibm.com>
2024-02-15[AArch64][SME] Implement inline-asm clobbers for za/zt0 (#79276)Matthew Devereau2-1/+16
This enables specifing "za" or "zt0" to the clobber list for inline asm. This complies with the acle SME addition to the asm extension here: https://github.com/ARM-software/acle/pull/276 (cherry picked from commit d9c20e437fe110fb79b5ca73a52762e5b930b361)
2024-02-15[clang-format] Don't remove parentheses in macro definitions (#81444)Owen Pan2-1/+3
Closes #81399. (cherry picked from commit 4af24d4ab76539706bfbceec4b3923426fb1b9e7)
2024-02-13[SPARC] Support reserving arbitrary general purpose registers (#74927)Koakuma3-0/+274
This adds support for marking arbitrary general purpose registers - except for those with special purpose (G0, I6-I7, O6-O7) - as reserved, as needed by some software like the Linux kernel. (cherry picked from commit c2f9885a8aa3a820eefdacccf3fcc6b9d87e3284)
2024-02-09Revert "[clang] Mark clang-format-ignore.cpp as unsupported on Windows"Owen Pan1-1/+0
This reverts commit dc61ebb44c11d2f5d03b7dd9cb80a0644a30775e. See https://github.com/llvm/llvm-project/pull/76733#issuecomment-1890311152. (cherry picked from commit a628f68a9c4ce6f3dcd0c8bb3650db45671ed15a)
2024-02-09[clang-format] Fix a regression in dumping the config (#80628)Owen Pan3-32/+30
Commit d813af73f70f addressed a regression introduced by commit 3791b3fca6ea but caused `clang-format -dump-config` to "hang". This patch reverts changes to ClangFormat.cpp by both commits and reworks the cleanup. Fixes #80621. (cherry picked from commit 8f6e13e6da84510c8321717860fd506e12118514)
2024-02-09[clang] Fix unexpected `-Wconstant-logical-operand` in C23 (#80724)Mariya Podchishchaeva3-1/+16
C23 has `bool`, but logical operators still return int. Check that we're not in C to avoid false-positive -Wconstant-logical-operand. Fixes https://github.com/llvm/llvm-project/issues/64356 (cherry picked from commit a18e92d020b895b712175a3b13a3d021608115a7)
2024-02-09[Clang][AArch64] Fix some target guards and remove +sve from tests. (#80681)Sander de Smalen49-228/+232
The TargetGuard fields for 'svldr[_vnum]_za' and 'svstr[_vnum]_za' were incorrectly set to `+sve` instead of `+sme`. This means that compiling code that uses these intrinsics requires compiling for both `+sve` as well as `+sme`. This PR also fixes the target guards for the `svadd` and `svsub` builtins that are enabled under `+sme2,+sme-i16i64` and `+sme2,+sme-f64f64`, as it initially did the following: ``` let TargetGuard = "+sme2" in { let TargetGuard = "+sme-i16i64" in { // Builtins defined here will be predicated only by // '+sme-i16i64', and not '+sme2,+sme-i16i64'. } } ``` This PR also removes `-target-feature +sve` from all the SME tests, to ensure that the SME features are sufficient to build the tests. (cherry picked from commit 3d186a77cf1aa979014a6443cb423a633c167d9f)
2024-02-08[Clang][AST] Fix a crash on attaching doc comments (#78716)Shanzhi2-1/+35
This crash is basically caused by calling `ASTContext::getRawCommentForDeclNoCacheImp` with its input arguments `RepresentativeLocForDecl` and `CommentsInTheFile` refering to different files. A reduced reproducer is provided in this patch. After the source locations for instantiations of funtion template are corrected in the commit 256a0b298c68b89688b80350b034daf2f7785b67, the variable `CommitsInThisFile` in the function `ASTContext::attachCommentsToJustParsedDecls` would refer to the source file rather than the header file for implicit function template instantiation. Therefore, in the first loop in `ASTContext::attachCommentsToJustParsedDecls`, `D` should also be adjusted for relevant scenarios like the second loop. Fixes #67979 Fixes #68524 Fixes #70550 (cherry picked from commit 5f4ee5a2dfa97fe32ee62d1d67aa1413d5a059e6)
2024-02-06[C++20] [Modules] Introduce -fskip-odr-check-in-gmf (#79959)llvmorg-18.1.0-rc2Chuanqi Xu15-30/+167
Close https://github.com/llvm/llvm-project/issues/79240 Cite the comment from @mizvekov in //github.com/llvm/llvm-project/issues/79240: > There are two kinds of bugs / issues relevant here: > > Clang bugs that this change hides > Here we can add a Frontend flag that disables the GMF ODR check, just > so > we can keep tracking, testing and fixing these issues. > The Driver would just always pass that flag. > We could add that flag in this current issue. > Bugs in user code: > I don't think it's worth adding a corresponding Driver flag for > controlling the above Frontend flag, since we intend it's behavior to > become default as we fix the problems, and users interested in testing > the more strict behavior can just use the Frontend flag directly. This patch follows the suggestion: - Introduce the CC1 flag `-fskip-odr-check-in-gmf` which is by default off, so that the every existing test will still be tested with checking ODR violations. - Passing `-fskip-odr-check-in-gmf` in the driver to keep the behavior we intended. - Edit the document to tell the users who are still interested in more strict checks can use `-Xclang -fno-skip-odr-check-in-gmf` to get the existing behavior.
2024-02-06[C++20] [Modules] Remove previous workaround for odr hashing enumsChuanqi Xu3-51/+52
Previosly we land https://github.com/llvm/llvm-project/commit/085eae6b863881fb9fda323e5b672b04a00ed19e to workaround the false positive ODR violations in https://github.com/llvm/llvm-project/issues/76638. However, we decided to not perform ODR checks for decls from GMF in https://github.com/llvm/llvm-project/issues/79240 and we land the corresponding change. So we should be able to remove the workaround now. The original tests get remained.
2024-02-06[C++20] [Modules] Don't perform ODR checks in GMFChuanqi Xu10-83/+68
Close https://github.com/llvm/llvm-project/issues/79240. See the linked issue for details. Given the frequency of issue reporting about false positive ODR checks (I received private issue reports too), I'd like to backport this to 18.x too.
2024-02-06[AArch64] Add some release notes items (#79983)Momchil Velikov1-0/+5
2024-02-06[clang-format] Fix a bug in AnnotatingParser::rParenEndsCast() (#79549)Owen Pan2-0/+7
Fixes #78965. (cherry picked from commit f826f55b2ab68c2515fae751dc2d6ef77f37b172)
2024-02-06[Release Notes][FMV] Document support for rcpc3 and mops features. (#80152)Alexandros Lamprineas1-0/+6
Documents support for Load-Acquire RCpc instructions v3 (rcpc3) as well as Memory Copy and Memory Set Acceleration instructions (mops) when targeting AArch64.
2024-02-06[Clang][Sema] Fix regression due to missing ambiguity check before ↵Shafik Yaghmour2-1/+24
attempting access check. (#80730) Previously when fixing ambiguous lookup diagnostics in cc1b6668c57170cd440d321037ced89d6a61a9cb The change refactored `LookupResult` to split out diagnosing access and ambiguous lookups. The call to `getSema().CheckLookupAccess(...)` should have guarded by a check for isAmbiguous(). This change adds that guard. Fixes: https://github.com/llvm/llvm-project/issues/80435 (cherry picked from commit a7bc9cb6ffa91ff0ebabc45c0c7263c7c2c3a4de)
2024-02-06Revert "[SemaCXX] Implement CWG2137 (list-initialization from objects of the ↵alexfh1-5/+0
same type) (#77768)" in release/18.x (#79400) - Revert "[SemaCXX] Implement CWG2137 (list-initialization from objects of the same type) (#77768)", see https://github.com/llvm/llvm-project/pull/77768#issuecomment-1908946696
2024-02-06[docs] Add release notes for Windows specific changes in 18.x (#80011)Martin Storsjö1-0/+2
2024-02-06PR for llvm/llvm-project#79568 (#80120)Younan Zhang3-2/+29
Backporting https://github.com/llvm/llvm-project/pull/79568 to clang 18.
2024-02-06[clang-format] Simplify the AfterPlacementOperator option (#79796)Owen Pan6-130/+38
Change AfterPlacementOperator to a boolean and deprecate SBPO_Never, which meant never inserting a space except when after new/delete. Fixes #78892. (cherry picked from commit 908fd09a13b2e89a52282478544f7f70cf0a887f)
2024-02-06[AArch64][TargetParser] Add mcpu alias for Microsoft Azure Cobalt 100. (#79614)Alexandros Lamprineas2-2/+5
With a690e86 we added -mcpu/mtune=native support to handle the Microsoft Azure Cobalt 100 CPU as a Neoverse N2. This patch adds a CPU alias in TargetParser to maintain compatibility with GCC. (cherry picked from commit ae8005ffb6cd18900de8ed5a86f60a4a16975471)
2024-02-06[CLANG] Fix INF/NAN warning. (#80290)Zahira Ammarguellat7-22/+126
In https://github.com/llvm/llvm-project/pull/76873 a warning was added when the macros INFINITY and NAN are used in binary expressions when -menable-no-nans or -menable-no-infs are used. If the user uses an option that nullifies these two options, the warning will still be generated. This patch adds an additional information to the warning comment to let the user know about this. It also suppresses the warning when #ifdef INFINITY, #ifdef NAN, #ifdef NAN or #ifndef NAN are used in the code. (cherry picked from commit 62c352e13c145b5606ace88ecbe9164ff011b5cf)
2024-02-06[CMake][PGO] Add option for using an external project to generate profile ↵Tom Stellard2-10/+21
data (#78879) The new CLANG_PGO_TRAINING_DATA_SOURCE_DIR allows users to specify a CMake project to use for generating the profile data. For example, to use the llvm-test-suite to generate profile data you would do: $ cmake -G Ninja -B build -S llvm -C <path to source>/clang/cmake/caches/PGO.cmake \ -DBOOTSTRAP_CLANG_PGO_TRAINING_DATA_SOURCE_DIR=<path to llvm-test-suite> \ -DBOOTSTRAP_CLANG_PGO_TRAINING_DEPS=runtimes Note that the CLANG_PERF_TRAINING_DEPS has been renamed to CLANG_PGO_TRAINING_DEPS. --------- Co-authored-by: Petr Hosek <phosek@google.com> (cherry picked from commit dd0356d741aefa25ece973d6cc4b55dcb73b84b4)
2024-02-05[clang] Add GCC-compatible code model names for sparc64Koakuma2-0/+14
This adds GCC-compatible names for code model selection on 64-bit SPARC with absolute code. Testing with a 2-stage build then running codegen tests works okay under all of the supported code models. (32-bit target does not have selectable code models) Reviewed By: @brad0, @MaskRay (cherry picked from commit b0f0babff22e9c0af74535b05e2c6424392bb24a)
2024-02-05[Clang][AArch64] Emit 'unimplemented' diagnostic for SME (#80295)Sander de Smalen3-29/+40
When a function F has ZA and ZT0 state, calls another function G that only shares ZT0 state with its caller, F will have to save ZA before the call to G, and restore it afterwards (rather than setting up a lazy-sve). This is not yet implemented in LLVM and does not result in a compile-time error either. So instead of silently generating incorrect code, it's better to emit an error saying this is not yet implemented. (cherry picked from commit 319f4c03ba2909c7240ac157cc46216bf1518c10)
2024-02-03[clang] Represent array refs as `TemplateArgument::Declaration` (#80050)Andrey Ali Khan Bolshakov2-20/+37
This returns (probably temporarily) array-referring NTTP behavior to which was prior to #78041 because ~~I'm fed up~~ have no time to fix regressions. (cherry picked from commit 9bf4e54ef42d907ae7550f36fa518f14fa97af6f)
2024-02-03Backport '[clang] static operators should evaluate object argument (reland)' ↵Tianlan Zhou9-42/+159
to release/18.x (#80109) Cherry picked from commit ee01a2c3996f9647f3158f5acdb921a6ede94dc1. Closes #80041, backport #80108. Co-authored-by: Shafik Yaghmour <shafik@users.noreply.github.com> Co-authored-by: cor3ntin <corentinjabot@gmail.com> Co-authored-by: Aaron Ballman <aaron@aaronballman.com>
2024-02-03[Clang][AArch64] Add missing SME macros (#80293)Sander de Smalen4-0/+39
__ARM_STATE_ZA and __ARM_STATE_ZT0 are set when the compiler can parse the "za" and "zt0" strings in the SME attributes. __ARM_FEATURE_SME and __ARM_FEATURE_SME2 are set when the compiler can generate code for attributes with "za" and "zt0" state, respectively. __ARM_FEATURE_LOCALLY_STREAMING is set when the compiler supports the __arm_locally_streaming attribute. (cherry picked from commit 9e649518e6038a5b9ea38cfa424468657d3be59e)
2024-02-01[coverage] fix crash in code coverage and `if constexpr` with ↵Hana Dusíková2-2/+33
`ExprWithCleanups` (#80292) Fixes https://github.com/llvm/llvm-project/issues/80285 (cherry picked from commit bfc6eaa26326e4d0d20d1f4a1f0064c6df0135bd)
2024-02-01Fix analyzer crash on 'StructuralValue' (#79764)Andrey Ali Khan Bolshakov4-4/+37
`OpaqueValueExpr` doesn't necessarily contain a source expression. Particularly, after #78041, it is used to carry the type and the value kind of a non-type template argument of floating-point type or referring to a subobject (those are so called `StructuralValue` arguments). This fixes #79575. (cherry picked from commit ef67f63fa5f950f4056b5783e92e137342805d74)
2024-01-31[Docs] Fix documentation build.Craig Topper1-1/+1
Missing ending `` after c92ad411f2f94d8521cd18abcb37285f9a390ecb