[llvm] [clang] [RISCV][MC] MC layer support for the experimental zalasr extension (PR #79911)

2024-01-30 Thread Jim Lin via cfe-commits
@@ -0,0 +1,66 @@ +//===-- RISCVInstrInfoZalasr.td - RISC-V 'Zalasr' instructions ---*- tablegen -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Ident

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/79712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 commented: I got the reason why I felt `__await_suspend_helper_` was odd. In my imagination, we only need to emit the function `await_suspend(handle)` to an LLVM function and pass that to `llvm.coro.await.suspend` directly. https://github.com/llvm/llvm-project/pul

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -173,6 +173,10 @@ static bool ResumeStmtCanThrow(const Stmt *S) { return false; } +static bool AwaitSuspendStmtCanThrow(const Stmt *S) { + return ResumeStmtCanThrow(S); +} ChuanqiXu9 wrote: Maybe it will be better to rename `ResumeStmtCanThrow` to `Stmt

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -232,16 +237,59 @@ static LValueOrRValue emitSuspendExpression(CodeGenFunction &CGF, CGCoroData &Co auto *NullPtr = llvm::ConstantPointerNull::get(CGF.CGM.Int8PtrTy); auto *SaveCall = Builder.CreateCall(CoroSave, {NullPtr}); - CGF.CurCoro.InSuspendBlock = true; - aut

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -5036,14 +5036,17 @@ class CoroutineSuspendExpr : public Expr { Stmt *SubExprs[SubExpr::Count]; OpaqueValueExpr *OpaqueValue = nullptr; + OpaqueValueExpr *OpaqueFramePtr = nullptr; ChuanqiXu9 wrote: I still think we can get rid of storing `OpaqueFrame

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -79,6 +79,73 @@ using namespace llvm; namespace { +// Created on demand if the coro-early pass has work to do. +class Lowerer : public coro::LowererBase { + IRBuilder<> Builder; + void lowerAwaitSuspend(CoroAwaitSuspendInst *CB); + +public: + Lowerer(Module &M) : Lowere

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -1744,6 +1744,273 @@ a call to ``llvm.coro.suspend.retcon`` after resuming abnormally. In a yield-once coroutine, it is undefined behavior if the coroutine executes a call to ``llvm.coro.suspend.retcon`` after resuming in any way. +.. _coro.await.suspend: + +'llvm.coro.awa

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -232,16 +237,59 @@ static LValueOrRValue emitSuspendExpression(CodeGenFunction &CGF, CGCoroData &Co auto *NullPtr = llvm::ConstantPointerNull::get(CGF.CGM.Int8PtrTy); auto *SaveCall = Builder.CreateCall(CoroSave, {NullPtr}); - CGF.CurCoro.InSuspendBlock = true; - aut

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -1744,6 +1744,273 @@ a call to ``llvm.coro.suspend.retcon`` after resuming abnormally. In a yield-once coroutine, it is undefined behavior if the coroutine executes a call to ``llvm.coro.suspend.retcon`` after resuming in any way. +.. _coro.await.suspend: + +'llvm.coro.awa

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -1744,6 +1744,273 @@ a call to ``llvm.coro.suspend.retcon`` after resuming abnormally. In a yield-once coroutine, it is undefined behavior if the coroutine executes a call to ``llvm.coro.suspend.retcon`` after resuming in any way. +.. _coro.await.suspend: + +'llvm.coro.awa

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -232,16 +237,59 @@ static LValueOrRValue emitSuspendExpression(CodeGenFunction &CGF, CGCoroData &Co auto *NullPtr = llvm::ConstantPointerNull::get(CGF.CGM.Int8PtrTy); auto *SaveCall = Builder.CreateCall(CoroSave, {NullPtr}); - CGF.CurCoro.InSuspendBlock = true; - aut

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -338,6 +386,85 @@ static QualType getCoroutineSuspendExprReturnType(const ASTContext &Ctx, } #endif +llvm::Function *CodeGenFunction::generateAwaitSuspendHelper( ChuanqiXu9 wrote: For such function definitions, generally we need a comment about its reason

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -79,6 +79,73 @@ using namespace llvm; namespace { +// Created on demand if the coro-early pass has work to do. +class Lowerer : public coro::LowererBase { + IRBuilder<> Builder; + void lowerAwaitSuspend(CoroAwaitSuspendInst *CB); + +public: + Lowerer(Module &M) : Lowere

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -79,6 +79,73 @@ using namespace llvm; namespace { +// Created on demand if the coro-early pass has work to do. +class Lowerer : public coro::LowererBase { ChuanqiXu9 wrote: Why do we need to inherit `coro::LowererBase`? Can't we make it directly in a fun

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -79,6 +79,73 @@ using namespace llvm; namespace { +// Created on demand if the coro-early pass has work to do. +class Lowerer : public coro::LowererBase { + IRBuilder<> Builder; + void lowerAwaitSuspend(CoroAwaitSuspendInst *CB); + +public: + Lowerer(Module &M) : Lowere

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -1553,6 +1625,9 @@ static bool hasCallsInBlocksBetween(BasicBlock *SaveBB, BasicBlock *ResDesBB) { } static bool hasCallsBetween(Instruction *Save, Instruction *ResumeOrDestroy) { + if (Save == ResumeOrDestroy) +return false; ChuanqiXu9 wrote: How ca

[clang] 7155c1e - [NVPTX] Allow compiling LLVM-IR without `-march` set (#79873)

2024-01-30 Thread via cfe-commits
Author: Joseph Huber Date: 2024-01-30T21:44:43-06:00 New Revision: 7155c1ef658b66132f15bf1406e84e68eed3358f URL: https://github.com/llvm/llvm-project/commit/7155c1ef658b66132f15bf1406e84e68eed3358f DIFF: https://github.com/llvm/llvm-project/commit/7155c1ef658b66132f15bf1406e84e68eed3358f.diff

[clang] [NVPTX] Allow compiling LLVM-IR without `-march` set (PR #79873)

2024-01-30 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 closed https://github.com/llvm/llvm-project/pull/79873 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Serialization] Load Specializations Lazily (PR #76774)

2024-01-30 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: I applied the change to https://github.com/ChuanqiXu9/root/tree/LoadSpecLazily And the testing result looks like, hmm, unstable, there are 326 tests failed out of 2174 and in the LoadSpecLazily version, there are 328 tests out of 2174. But some tests passed in LoadSpecLazily

[llvm] [clang] [PGO] Add ability to mark cold functions as optsize/minsize/optnone (PR #69030)

2024-01-30 Thread via cfe-commits
@@ -0,0 +1,73 @@ +//===--===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apac

[llvm] [lldb] [lld] [libcxx] [clang-tools-extra] [libcxxabi] [libc] [clang] [libunwind] [openmp] [compiler-rt] [flang] [mlir] [clang] static operators should evaluate object argument (PR #68485)

2024-01-30 Thread Younan Zhang via cfe-commits
@@ -15097,15 +15102,9 @@ ExprResult Sema::CreateOverloadedArraySubscriptExpr(SourceLocation LLoc, ExprValueKind VK = Expr::getValueKindForType(ResultTy); ResultTy = ResultTy.getNonLValueExprType(Context); -CallExpr *TheCall; -if (Method->isInst

[clang] Support C++20 Modules in clang-repl (PR #79261)

2024-01-30 Thread Nathan Chancellor via cfe-commits
@@ -0,0 +1,31 @@ +// UNSUPPORTED: system-aix +// +// RUN: rm -rf %t +// RUN: mkdir -p %t +// RUN: split-file %s %t +// +// RUN: %clang -std=c++20 %t/mod.cppm --precompile \ +// RUN: -o %t/mod.pcm +// RUN: %clang %t/mod.pcm -c -o %t/mod.o +// RUN: %clang -shared %t/mod.o -o %t/

[llvm] [clang] [PGO] Add ability to mark cold functions as optsize/minsize/optnone (PR #69030)

2024-01-30 Thread via cfe-commits
WenleiHe wrote: > > How does this relate to the existing `shouldOptimizeForSize(Function&, > > ...)` and `shouldOptimizeForSize(MachineFunction&, ...)` APIs which appear > > to provide similar functionality at a first glance. If they are the same, > > then we should have a plan in place to cle

[libc] [libcxx] [lldb] [flang] [compiler-rt] [clang-tools-extra] [llvm] [lld] [clang] [concepts] Push a CurContext before substituting into out-of-line constraints for comparison (PR #79985)

2024-01-30 Thread Younan Zhang via cfe-commits
https://github.com/zyn0217 closed https://github.com/llvm/llvm-project/pull/79985 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] ab70ac6 - [concepts] Push a CurContext before substituting into out-of-line constraints for comparison (#79985)

2024-01-30 Thread via cfe-commits
Author: Younan Zhang Date: 2024-01-31T12:17:41+08:00 New Revision: ab70ac605e784c630122b27c5971fde68e80bd1b URL: https://github.com/llvm/llvm-project/commit/ab70ac605e784c630122b27c5971fde68e80bd1b DIFF: https://github.com/llvm/llvm-project/commit/ab70ac605e784c630122b27c5971fde68e80bd1b.diff

[clang] Support C++20 Modules in clang-repl (PR #79261)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,31 @@ +// UNSUPPORTED: system-aix +// +// RUN: rm -rf %t +// RUN: mkdir -p %t +// RUN: split-file %s %t +// +// RUN: %clang -std=c++20 %t/mod.cppm --precompile \ +// RUN: -o %t/mod.pcm +// RUN: %clang %t/mod.pcm -c -o %t/mod.o +// RUN: %clang -shared %t/mod.o -o %t/

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/79712 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Support C++20 Modules in clang-repl (PR #79261)

2024-01-30 Thread Nathan Chancellor via cfe-commits
@@ -0,0 +1,31 @@ +// UNSUPPORTED: system-aix +// +// RUN: rm -rf %t +// RUN: mkdir -p %t +// RUN: split-file %s %t +// +// RUN: %clang -std=c++20 %t/mod.cppm --precompile \ +// RUN: -o %t/mod.pcm +// RUN: %clang %t/mod.pcm -c -o %t/mod.o +// RUN: %clang -shared %t/mod.o -o %t/

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread Wentao Zhang via cfe-commits
https://github.com/whentojump created https://github.com/llvm/llvm-project/pull/80098 ## Problem The behavior is described with this tiny example: https://github.com/whentojump/llvm-mcdc-assertion-failure Essentially, current MC/DC implementation cannot properly handle decisions that involve

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread via cfe-commits
github-actions[bot] wrote: Thank you for submitting a Pull Request (PR) to the LLVM Project! This PR will be automatically labeled and the relevant teams will be notified. If you wish to, you can add reviewers by using the "Reviewers" section on this page. If this is not working for you, it i

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-codegen @llvm/pr-subscribers-clang Author: Wentao Zhang (whentojump) Changes ## Problem The behavior is described with this tiny example: https://github.com/whentojump/llvm-mcdc-assertion-failure Essentially, current MC/DC implementation cannot

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread via cfe-commits
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff c19436eec1c236cbe622c04e33f35f1f9478fa15 cd5a33851187c872c0de7a766528be097bcc68ad --

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread Alan Phipps via cfe-commits
evodius96 wrote: Hi! I think this may be the same issue as https://github.com/llvm/llvm-project/issues/77871 and a fix is under review by @chapuni Can you verify? https://github.com/llvm/llvm-project/pull/80098 ___ cfe-commits mailing list cfe-commi

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread Wentao Zhang via cfe-commits
whentojump wrote: Hi thanks for the prompt reply and the pointer! Will definitely check. https://github.com/llvm/llvm-project/pull/80098 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] c12f30c - [clang][analyzer] Improve modeling of 'realpath' in StdLibraryFunctionsChecker (#79939)

2024-01-30 Thread via cfe-commits
Author: Ben Shi Date: 2024-01-31T12:50:23+08:00 New Revision: c12f30c7ffedb2338d64d8f98a76ae56c497cfbb URL: https://github.com/llvm/llvm-project/commit/c12f30c7ffedb2338d64d8f98a76ae56c497cfbb DIFF: https://github.com/llvm/llvm-project/commit/c12f30c7ffedb2338d64d8f98a76ae56c497cfbb.diff LOG:

[clang] [clang][analyzer] Improve modeling of 'realpath' in StdLibraryFunctionsChecker (PR #79939)

2024-01-30 Thread Ben Shi via cfe-commits
https://github.com/benshi001 closed https://github.com/llvm/llvm-project/pull/79939 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NFC] Move isSimpleTypeSpecifier() from Sema to Token (PR #80101)

2024-01-30 Thread Owen Pan via cfe-commits
https://github.com/owenca created https://github.com/llvm/llvm-project/pull/80101 So that it can be used by clang-format. >From f3ad3ceebba663615e75b5a6fc8969f4a98a03ea Mon Sep 17 00:00:00 2001 From: Owen Pan Date: Tue, 30 Jan 2024 19:11:30 -0800 Subject: [PATCH] [clang][NFC] Move isSimpleType

[clang] [clang][NFC] Move isSimpleTypeSpecifier() from Sema to Token (PR #80101)

2024-01-30 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang Author: Owen Pan (owenca) Changes So that it can be used by clang-format. --- Full diff: https://github.com/llvm/llvm-project/pull/80101.diff 6 Files Affected: - (modified) clang/include/clang/Lex/Token.h (+3) - (modified) clang/include/clang/

[lld] [lldb] [libunwind] [mlir] [libcxx] [llvm] [openmp] [libc] [compiler-rt] [flang] [clang-tools-extra] [libcxxabi] [clang] [clang] static operators should evaluate object argument (PR #68485)

2024-01-30 Thread Tianlan Zhou via cfe-commits
@@ -15097,15 +15102,9 @@ ExprResult Sema::CreateOverloadedArraySubscriptExpr(SourceLocation LLoc, ExprValueKind VK = Expr::getValueKindForType(ResultTy); ResultTy = ResultTy.getNonLValueExprType(Context); -CallExpr *TheCall; -if (Method->isInst

[lld] [clang-tools-extra] [llvm] [clang] [lld][AArch64][ELF][PAC] Support AUTH relocations and AUTH ELF marking (PR #72714)

2024-01-30 Thread Fangrui Song via cfe-commits
@@ -1461,6 +1493,33 @@ template void RelocationScanner::scanOne(RelTy *&i) { } } + // if (config->emachine == EM_AARCH64 && type == R_AARCH64_AUTH_ABS64) { MaskRay wrote: Why is this commented out? https://github.com/llvm/llvm-project/pull/72714 ___

[lld] [clang-tools-extra] [llvm] [clang] [lld][AArch64][ELF][PAC] Support AUTH relocations and AUTH ELF marking (PR #72714)

2024-01-30 Thread Fangrui Song via cfe-commits
@@ -543,7 +553,8 @@ class RelocationBaseSection : public SyntheticSection { static bool classof(const SectionBase *d) { return SyntheticSection::classof(d) && (d->type == llvm::ELF::SHT_RELA || d->type == llvm::ELF::SHT_REL || -d->type == llvm::ELF:

[lld] [clang-tools-extra] [llvm] [clang] [lld][AArch64][ELF][PAC] Support AUTH relocations and AUTH ELF marking (PR #72714)

2024-01-30 Thread Fangrui Song via cfe-commits
@@ -0,0 +1,83 @@ +# REQUIRES: aarch64 + +# RUN: rm -rf %t && split-file %s %t && cd %t + +# RUN: llvm-mc -filetype=obj -triple=aarch64-linux-gnu abi-tag1.s -o tag11.o +# RUN: cp tag11.o tag12.o +# RUN: ld.lld -shared tag11.o tag12.o -o tagok.so +# RUN: llvm-readelf -n tagok.so | F

[lld] [lldb] [libunwind] [mlir] [libcxx] [llvm] [openmp] [libc] [compiler-rt] [flang] [clang-tools-extra] [libcxxabi] [clang] [clang] static operators should evaluate object argument (PR #68485)

2024-01-30 Thread Younan Zhang via cfe-commits
@@ -15097,15 +15102,9 @@ ExprResult Sema::CreateOverloadedArraySubscriptExpr(SourceLocation LLoc, ExprValueKind VK = Expr::getValueKindForType(ResultTy); ResultTy = ResultTy.getNonLValueExprType(Context); -CallExpr *TheCall; -if (Method->isInst

[clang] [llvm] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -232,16 +237,59 @@ static LValueOrRValue emitSuspendExpression(CodeGenFunction &CGF, CGCoroData &Co auto *NullPtr = llvm::ConstantPointerNull::get(CGF.CGM.Int8PtrTy); auto *SaveCall = Builder.CreateCall(CoroSave, {NullPtr}); - CGF.CurCoro.InSuspendBlock = true; - aut

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
@@ -338,6 +386,85 @@ static QualType getCoroutineSuspendExprReturnType(const ASTContext &Ctx, } #endif +llvm::Function *CodeGenFunction::generateAwaitSuspendHelper( +Twine const &CoroName, Twine const &SuspendPointName, +CoroutineSuspendExpr const &S, bool CanThrow) {

[lldb] [mlir] [libcxx] [llvm] [compiler-rt] [libc] [flang] [clang-tools-extra] [clang] [OpenMP] atomic compare weak : Parser & AST support (PR #79475)

2024-01-30 Thread via cfe-commits
https://github.com/SunilKuravinakop updated https://github.com/llvm/llvm-project/pull/79475 >From 6614e517cf0888b4502efc0af974d1612fa7a822 Mon Sep 17 00:00:00 2001 From: Sunil Kuravinakop Date: Thu, 25 Jan 2024 10:37:20 -0600 Subject: [PATCH 1/4] Changes to Support Parsing & Sema of atomic comp

[clang] [llvm] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread NAKAMURA Takumi via cfe-commits
@@ -1973,6 +1981,8 @@ struct CounterCoverageMappingBuilder void VisitBinLAnd(const BinaryOperator *E) { bool IsRootNode = MCDCBuilder.isIdle(); +MCDCDebugCounter++; chapuni wrote: I didn't understand the strategy to assign it. https://github.com/ll

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread NAKAMURA Takumi via cfe-commits
https://github.com/chapuni edited https://github.com/llvm/llvm-project/pull/80098 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread NAKAMURA Takumi via cfe-commits
@@ -246,16 +248,18 @@ void CoverageMappingWriter::write(raw_ostream &OS) { encodeULEB128(unsigned(I->MCDCParams.ID), OS); encodeULEB128(unsigned(I->MCDCParams.TrueID), OS); encodeULEB128(unsigned(I->MCDCParams.FalseID), OS); + encodeULEB128(unsigned(I->MC

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread NAKAMURA Takumi via cfe-commits
https://github.com/chapuni requested changes to this pull request. I suppose this is still a draft. https://github.com/llvm/llvm-project/pull/80098 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread NAKAMURA Takumi via cfe-commits
@@ -857,6 +857,8 @@ struct CounterCoverageMappingBuilder unsigned getRegionBitmap(const Stmt *S) { return MCDCBitmapMap[S]; } + unsigned long MCDCDebugCounter; chapuni wrote: What is its preferable name? I guess you expects unique ID for debug for now. h

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread NAKAMURA Takumi via cfe-commits
chapuni wrote: See also, #78920, I guess it is also relevant to you. https://github.com/llvm/llvm-project/pull/80098 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread Wentao Zhang via cfe-commits
https://github.com/whentojump closed https://github.com/llvm/llvm-project/pull/80098 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] `llvm-cov` assertion failure when handling MC/DC that involves macros (PR #80098)

2024-01-30 Thread Wentao Zhang via cfe-commits
whentojump wrote: Hey @chapuni thanks for the comments! This is indeed a draft. Since there're already reports regarding this issue, let me close this one. I will try those linked patches and report if I have findings. Sorry for not searching for the ongoing effort and thanks for your work!

[clang-tools-extra] [clang] [compiler-rt] [flang] [llvm] intrinsic to generate a ubfx instruction (PR #80103)

2024-01-30 Thread Rama Malladi via cfe-commits
https://github.com/RamaMalladiAWS updated https://github.com/llvm/llvm-project/pull/80103 >From e6df837fa223046677b162f817b2b00a99b68a74 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Fri, 26 Jan 2024 18:49:23 + Subject: [PATCH] intrinsic to generate a ubfx instruction --- llvm/include/llvm/

[clang] [llvm] Computing, storing, and restoring conservative call graphs with LLVM (PR #80104)

2024-01-30 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-llvm-ir Author: Prabhuk (Prabhuk) Changes Reviving the original patchset: https://reviews.llvm.org/D105916 --- Patch is 87.97 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/80104.diff 47 Files Affected:

[clang] [llvm] Computing, storing, and restoring conservative call graphs with LLVM (PR #80104)

2024-01-30 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang @llvm/pr-subscribers-clang-driver Author: Prabhuk (Prabhuk) Changes Reviving the original patchset: https://reviews.llvm.org/D105916 --- Patch is 87.97 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/

[clang] [llvm] Computing, storing, and restoring conservative call graphs with LLVM (PR #80104)

2024-01-30 Thread via cfe-commits
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff a034e65e972175a2465deacb8c78bc7efc99bd23 3c1b217eb819525e7d338b129e0fae6847608e61 --

[clang] [llvm] Adding support of AMDLIBM vector library (PR #78560)

2024-01-30 Thread Phoebe Wang via cfe-commits
https://github.com/phoebewang approved this pull request. LGTM. https://github.com/llvm/llvm-project/pull/78560 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] 2699c1d - [clang-tidy] Use StringRef::starts_with (NFC)

2024-01-30 Thread Kazu Hirata via cfe-commits
Author: Kazu Hirata Date: 2024-01-30T22:12:08-08:00 New Revision: 2699c1d7007ea8001bfaae50de01ff33791ce958 URL: https://github.com/llvm/llvm-project/commit/2699c1d7007ea8001bfaae50de01ff33791ce958 DIFF: https://github.com/llvm/llvm-project/commit/2699c1d7007ea8001bfaae50de01ff33791ce958.diff L

[clang] [clang-format] Update FormatToken::isSimpleTypeSpecifier() (PR #79115)

2024-01-30 Thread Owen Pan via cfe-commits
https://github.com/owenca updated https://github.com/llvm/llvm-project/pull/79115 >From f3ad3ceebba663615e75b5a6fc8969f4a98a03ea Mon Sep 17 00:00:00 2001 From: Owen Pan Date: Tue, 30 Jan 2024 19:11:30 -0800 Subject: [PATCH] [clang][NFC] Move isSimpleTypeSpecifier() from Sema to Token So that i

[clang] [clang-format] Update FormatToken::isSimpleTypeSpecifier() (PR #79115)

2024-01-30 Thread Owen Pan via cfe-commits
https://github.com/owenca edited https://github.com/llvm/llvm-project/pull/79115 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-format] Update FormatToken::isSimpleTypeSpecifier() (PR #79115)

2024-01-30 Thread Owen Pan via cfe-commits
https://github.com/owenca updated https://github.com/llvm/llvm-project/pull/79115 >From f3ad3ceebba663615e75b5a6fc8969f4a98a03ea Mon Sep 17 00:00:00 2001 From: Owen Pan Date: Tue, 30 Jan 2024 19:11:30 -0800 Subject: [PATCH 1/2] [clang][NFC] Move isSimpleTypeSpecifier() from Sema to Token So t

[openmp] [lld] [compiler-rt] [flang] [lldb] [libunwind] [libcxxabi] [llvm] [libcxx] [mlir] [clang-tools-extra] [clang] [libc] [clang] static operators should evaluate object argument (PR #68485)

2024-01-30 Thread Tianlan Zhou via cfe-commits
https://github.com/SuperSodaSea edited https://github.com/llvm/llvm-project/pull/68485 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] 5bb99ed - [clang][Interp] Add inline descriptor to global variables (#72892)

2024-01-30 Thread via cfe-commits
Author: Timm Baeder Date: 2024-01-31T08:03:37+01:00 New Revision: 5bb99edcb6726e5dcc20d2236ef51b11c248acb9 URL: https://github.com/llvm/llvm-project/commit/5bb99edcb6726e5dcc20d2236ef51b11c248acb9 DIFF: https://github.com/llvm/llvm-project/commit/5bb99edcb6726e5dcc20d2236ef51b11c248acb9.diff L

[clang] [clang][Interp] Add inline descriptor to global variables (PR #72892)

2024-01-30 Thread Timm Baeder via cfe-commits
https://github.com/tbaederr closed https://github.com/llvm/llvm-project/pull/72892 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[lld] [compiler-rt] [flang] [llvm] [libcxx] [clang-tools-extra] [clang] [libc] [libc++][memory] P2652R2: Disallow Specialization of `allocator_traits` (PR #79978)

2024-01-30 Thread Hristo Hristov via cfe-commits
https://github.com/H-G-Hristov updated https://github.com/llvm/llvm-project/pull/79978 >From c2b9a249689b2b6928d50aeea4717fc9dfe87162 Mon Sep 17 00:00:00 2001 From: Zingam Date: Sat, 27 Jan 2024 13:54:21 +0200 Subject: [PATCH 1/2] [libc++][memory] P2652R2 - Disallow Specialization of `allocato

[openmp] [lld] [compiler-rt] [flang] [lldb] [libunwind] [libcxxabi] [llvm] [libcxx] [mlir] [clang-tools-extra] [clang] [libc] [clang] static operators should evaluate object argument (PR #68485)

2024-01-30 Thread Tianlan Zhou via cfe-commits
@@ -15097,15 +15102,9 @@ ExprResult Sema::CreateOverloadedArraySubscriptExpr(SourceLocation LLoc, ExprValueKind VK = Expr::getValueKindForType(ResultTy); ResultTy = ResultTy.getNonLValueExprType(Context); -CallExpr *TheCall; -if (Method->isInst

[flang] [clang-tools-extra] [compiler-rt] [lldb] [libunwind] [libcxx] [lld] [mlir] [clang] [libc] [openmp] [llvm] [libcxxabi] [clang] static operators should evaluate object argument (PR #68485)

2024-01-30 Thread Tianlan Zhou via cfe-commits
SuperSodaSea wrote: Relanding at #80108. https://github.com/llvm/llvm-project/pull/68485 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[flang] [clang-tools-extra] [compiler-rt] [libcxx] [lld] [clang] [libc] [llvm] [libc++][memory] P2652R2: Disallow Specialization of `allocator_traits` (PR #79978)

2024-01-30 Thread via cfe-commits
github-actions[bot] wrote: :warning: C/C++ code formatter, clang-format found issues in your code. :warning: You can test this locally with the following command: ``bash git-clang-format --diff 7565ae6eb99b6d3c5d83d04404a2df1b3785dbfe 252f67bcc25c2caae211ea50bf6836f9f0345f05 --

[flang] [clang-tools-extra] [compiler-rt] [lldb] [libunwind] [libcxx] [lld] [mlir] [clang] [libc] [openmp] [llvm] [libcxxabi] [clang] static operators should evaluate object argument (reland) (PR #801

2024-01-30 Thread Tianlan Zhou via cfe-commits
SuperSodaSea wrote: CC @cor3ntin, @shafik, @AaronBallman and @zyn0217 https://github.com/llvm/llvm-project/pull/80108 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NFC] Move isSimpleTypeSpecifier() from Sema to Token (PR #80101)

2024-01-30 Thread Timm Baeder via cfe-commits
@@ -13,6 +13,7 @@ #ifndef LLVM_CLANG_LEX_TOKEN_H #define LLVM_CLANG_LEX_TOKEN_H +#include "clang/Basic/LangOptions.h" tbaederr wrote: I think we can get by with a forward-declaration of `LangOptions` instead of the include here? https://github.com/llvm/llvm

[clang] c83ec84 - [clang][dataflow] Extend debug output for `Environment`. (#79982)

2024-01-30 Thread via cfe-commits
Author: martinboehme Date: 2024-01-31T08:11:13+01:00 New Revision: c83ec847ac9d06fb4ad85ce3bc50d7a6b122ead2 URL: https://github.com/llvm/llvm-project/commit/c83ec847ac9d06fb4ad85ce3bc50d7a6b122ead2 DIFF: https://github.com/llvm/llvm-project/commit/c83ec847ac9d06fb4ad85ce3bc50d7a6b122ead2.diff

[clang] [clang][dataflow] Extend debug output for `Environment`. (PR #79982)

2024-01-30 Thread via cfe-commits
https://github.com/martinboehme closed https://github.com/llvm/llvm-project/pull/79982 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[openmp] [lld] [compiler-rt] [flang] [lldb] [libunwind] [libcxxabi] [llvm] [libcxx] [mlir] [clang-tools-extra] [clang] [libc] [clang] static operators should evaluate object argument (reland) (PR #801

2024-01-30 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang-codegen Author: Tianlan Zhou (SuperSodaSea) Changes ### Description clang don't evaluate the object argument of `static operator()` and `static operator[]` currently, for example: ```cpp #include struct Foo { static int operator(

[clang] [clang][Interp] Handle imaginary literals (PR #79130)

2024-01-30 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/79130 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Interp] Handle casts between complex types (PR #79269)

2024-01-30 Thread Timm Baeder via cfe-commits
tbaederr wrote: Ping https://github.com/llvm/llvm-project/pull/79269 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [RISCV][Clang] Added builtin support for experimental Zimop extension (PR #79971)

2024-01-30 Thread Lyut Nersisyan via cfe-commits
https://github.com/ln8-8 updated https://github.com/llvm/llvm-project/pull/79971 >From a2a37921c83511796e051520c887092a3f58a3ba Mon Sep 17 00:00:00 2001 From: ln8-8 Date: Tue, 30 Jan 2024 13:02:22 +0400 Subject: [PATCH 1/2] [RISCV][Clang] Added builtin support for experimental Zimop extension

[openmp] [lld] [compiler-rt] [flang] [lldb] [libunwind] [libcxxabi] [llvm] [libcxx] [mlir] [clang-tools-extra] [clang] [libc] [clang] static operators should evaluate object argument (reland) (PR #801

2024-01-30 Thread via cfe-commits
@@ -651,16 +651,12 @@ class InlayHintVisitor : public RecursiveASTVisitor { // implied object argument ([over.call.func]), the list of provided // arguments is preceded by the implied object argument for the purposes of // this correspondence... -// -// How

[flang] [clang-tools-extra] [compiler-rt] [lldb] [libunwind] [libcxx] [lld] [mlir] [clang] [libc] [openmp] [llvm] [libcxxabi] [clang] static operators should evaluate object argument (reland) (PR #801

2024-01-30 Thread Younan Zhang via cfe-commits
https://github.com/zyn0217 approved this pull request. Thanks again for working on it. The clangd part LGTM, and since the other part was left as-is and had been accepted in our previous attempt #68485, I believe we can now reland the patch. Please keep an eye on the CI in case we have missed

[flang] [clang-tools-extra] [compiler-rt] [lldb] [libunwind] [libcxx] [lld] [mlir] [clang] [libc] [openmp] [llvm] [libcxxabi] [clang] static operators should evaluate object argument (reland) (PR #801

2024-01-30 Thread Tianlan Zhou via cfe-commits
@@ -651,16 +651,12 @@ class InlayHintVisitor : public RecursiveASTVisitor { // implied object argument ([over.call.func]), the list of provided // arguments is preceded by the implied object argument for the purposes of // this correspondence... -// -// How

[openmp] [lld] [compiler-rt] [flang] [lldb] [libunwind] [libcxxabi] [llvm] [libcxx] [mlir] [clang-tools-extra] [clang] [libc] [clang] static operators should evaluate object argument (reland) (PR #801

2024-01-30 Thread Younan Zhang via cfe-commits
https://github.com/zyn0217 closed https://github.com/llvm/llvm-project/pull/80108 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][dataflow] In the CFG visualization, mark converged blocks. (PR #79999)

2024-01-30 Thread via cfe-commits
https://github.com/martinboehme updated https://github.com/llvm/llvm-project/pull/7 >From 771d63d99968fb96417e818ee6ba7ab4bdf8f764 Mon Sep 17 00:00:00 2001 From: Martin Braenne Date: Wed, 31 Jan 2024 07:29:59 + Subject: [PATCH] [clang][dataflow] In the CFG visualization, mark converged

[clang] [clang][dataflow] In the CFG visualization, mark converged blocks. (PR #79999)

2024-01-30 Thread via cfe-commits
@@ -158,13 +158,17 @@ class HTMLLogger : public Logger { StreamFactory Streams; std::unique_ptr OS; - std::optional JOS; + std::string JSON; + llvm::raw_string_ostream JStringStream{JSON}; + llvm::json::OStream JOS{JStringStream, /*Indent=*/2}; const ControlFlowCo

[clang] 82324bc - [clang][dataflow] In the CFG visualization, mark converged blocks. (#79999)

2024-01-30 Thread via cfe-commits
Author: martinboehme Date: 2024-01-31T08:31:08+01:00 New Revision: 82324bc991401aecc4d743d4993b6c68dd60a615 URL: https://github.com/llvm/llvm-project/commit/82324bc991401aecc4d743d4993b6c68dd60a615 DIFF: https://github.com/llvm/llvm-project/commit/82324bc991401aecc4d743d4993b6c68dd60a615.diff

[clang] [clang][dataflow] In the CFG visualization, mark converged blocks. (PR #79999)

2024-01-30 Thread via cfe-commits
https://github.com/martinboehme closed https://github.com/llvm/llvm-project/pull/7 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[llvm] [clang] [coroutine] Implement llvm.coro.await.suspend intrinsic (PR #79712)

2024-01-30 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: BTW, in my original comment, I said: > Then in the middle end, we can perform analysis the awaitSuspendFn to see if > the coroutine handle escapes or not. If it won't escape, we can replace above > intrinsic to the direct call. Otherwise, we will only convert them in the > C

[llvm] [clang] [Clang] Correct __builtin_dynamic_object_size for subobject types (PR #78526)

2024-01-30 Thread Richard Smith via cfe-commits
zygoloid wrote: It might be academic at this point, but for what it's worth, `__builtin_dynamic_object_size` is not a GCC builtin that clang copied, it's [a clang builtin](https://reviews.llvm.org/D56760) that GCC copied. https://github.com/llvm/llvm-project/pull/78526

[clang] [RISCV][Clang] Added builtin support for experimental Zimop extension (PR #79971)

2024-01-30 Thread Craig Topper via cfe-commits
@@ -89,5 +89,13 @@ TARGET_BUILTIN(__builtin_riscv_sm3p1, "UiUi", "nc", "zksh") TARGET_BUILTIN(__builtin_riscv_ntl_load, "v.", "t", "zihintntl") TARGET_BUILTIN(__builtin_riscv_ntl_store, "v.", "t", "zihintntl") +// Zimop extension +TARGET_BUILTIN(__builtin_riscv_mopr_32, "UiUiU

[lld] [compiler-rt] [flang] [llvm] [libcxx] [clang-tools-extra] [clang] [libc] [libc++][memory] P2652R2: Disallow Specialization of `allocator_traits` (PR #79978)

2024-01-30 Thread Hristo Hristov via cfe-commits
https://github.com/H-G-Hristov updated https://github.com/llvm/llvm-project/pull/79978 >From c2b9a249689b2b6928d50aeea4717fc9dfe87162 Mon Sep 17 00:00:00 2001 From: Zingam Date: Sat, 27 Jan 2024 13:54:21 +0200 Subject: [PATCH 1/3] [libc++][memory] P2652R2 - Disallow Specialization of `allocato

[lld] [compiler-rt] [flang] [llvm] [libcxx] [clang-tools-extra] [clang] [libc] [libc++][memory] P2652R2: Disallow Specialization of `allocator_traits` (PR #79978)

2024-01-30 Thread Hristo Hristov via cfe-commits
https://github.com/H-G-Hristov updated https://github.com/llvm/llvm-project/pull/79978 >From c2b9a249689b2b6928d50aeea4717fc9dfe87162 Mon Sep 17 00:00:00 2001 From: Zingam Date: Sat, 27 Jan 2024 13:54:21 +0200 Subject: [PATCH 1/3] [libc++][memory] P2652R2 - Disallow Specialization of `allocato

[lld] [compiler-rt] [flang] [llvm] [libcxx] [clang-tools-extra] [clang] [libc] [libc++][memory] P2652R2: Disallow Specialization of `allocator_traits` (PR #79978)

2024-01-30 Thread Hristo Hristov via cfe-commits
@@ -37,12 +37,16 @@ What's New in Libc++ 19.0.0? Implemented Papers -- + - P2637R3 - Member ``visit`` +- P2652R2 - Disallow User Specialization of ``allocator_traits`` Improvements and New Features - -TODO + +- The ``_LIBCPP_E

[clang] [Driver] Fix erroneous warning for -fcx-limited-range and -fcx-fortran-rules. (PR #79821)

2024-01-30 Thread Fangrui Song via cfe-commits
https://github.com/MaskRay approved this pull request. https://github.com/llvm/llvm-project/pull/79821 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Driver] Fix erroneous warning for -fcx-limited-range and -fcx-fortran-rules. (PR #79821)

2024-01-30 Thread Fangrui Song via cfe-commits
@@ -44,3 +47,4 @@ // CHECK-NOT: -complex-range=fortran // WARN1: warning: overriding '-fcx-limited-range' option with '-fcx-fortran-rules' [-Woverriding-option] // WARN2: warning: overriding '-fcx-fortran-rules' option with '-fcx-limited-range' [-Woverriding-option] +// range

[clang] [Driver] Fix erroneous warning for -fcx-limited-range and -fcx-fortran-rules. (PR #79821)

2024-01-30 Thread Fangrui Song via cfe-commits
https://github.com/MaskRay edited https://github.com/llvm/llvm-project/pull/79821 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-format] Support of TableGen tokens with unary operator like form, bang operators and numeric literals. (PR #78996)

2024-01-30 Thread via cfe-commits
https://github.com/mydeveloperday commented: LGTM https://github.com/llvm/llvm-project/pull/78996 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-format] Add options to set number of empty lines after includes (PR #78957)

2024-01-30 Thread via cfe-commits
@@ -3220,6 +3220,25 @@ the configuration (without a prefix: ``Auto``). +.. _EmptyLinesAfterIncludes: + +**EmptyLinesAfterIncludes** (``Unsigned``) :versionbadge:`clang-format 18` :ref:`ΒΆ ` mydeveloperday wrote: I've always looked at the "Upcoming Release"

[openmp] [lld] [compiler-rt] [flang] [lldb] [libunwind] [libcxxabi] [llvm] [libcxx] [mlir] [clang-tools-extra] [clang] [libc] [clang] static operators should evaluate object argument (reland) (PR #801

2024-01-30 Thread Younan Zhang via cfe-commits
@@ -651,16 +651,12 @@ class InlayHintVisitor : public RecursiveASTVisitor { // implied object argument ([over.call.func]), the list of provided // arguments is preceded by the implied object argument for the purposes of // this correspondence... -// -// How

[clang] [clang-format] Add options to set number of empty lines after includes (PR #78957)

2024-01-30 Thread via cfe-commits
https://github.com/mydeveloperday requested changes to this pull request. 18 isn't correct here as you can see here https://clang.llvm.org/docs/ClangFormatStyleOptions.html the "git" version is 19 https://github.com/llvm/llvm-project/pull/78957 ___ c

<    1   2   3   4   5   6   7   >