[clang] [clang][dep-scan] Resolve lexer crash from a permutation of invalid tokens (PR #142452)

2025-06-06 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/142452 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][dep-scan] Resolve lexer crash from a permutation of invalid tokens (PR #142452)

2025-06-05 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi edited https://github.com/llvm/llvm-project/pull/142452 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][dep-scan] Resolve lexer crash from a permutation of invalid tokens (PR #142452)

2025-06-05 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi edited https://github.com/llvm/llvm-project/pull/142452 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][dep-scan] Resolve lexer crash from a permutation of invalid tokens (PR #142452)

2025-06-05 Thread Argyrios Kyrtzidis via cfe-commits
@@ -503,6 +503,10 @@ bool Scanner::lexModuleDirectiveBody(DirectiveKind Kind, const char *&First, diag::err_dep_source_scanner_missing_semi_after_at_import); if (Tok.is(tok::semi)) break; +if (Tok.is(tok::hash) || Tok.is(tok::at)) + return reportEr

[clang] [clang][dep-scan] Resolve lexer crash from a permutation of invalid tokens (PR #142452)

2025-06-03 Thread Argyrios Kyrtzidis via cfe-commits
@@ -503,6 +503,10 @@ bool Scanner::lexModuleDirectiveBody(DirectiveKind Kind, const char *&First, diag::err_dep_source_scanner_missing_semi_after_at_import); if (Tok.is(tok::semi)) break; +if (Tok.is(tok::hash) || Tok.is(tok::at)) + return reportEr

[clang] [clang][dep-scan] Resolve lexer crash from a permutation of invalid tokens (PR #142452)

2025-06-02 Thread Argyrios Kyrtzidis via cfe-commits
@@ -503,6 +503,10 @@ bool Scanner::lexModuleDirectiveBody(DirectiveKind Kind, const char *&First, diag::err_dep_source_scanner_missing_semi_after_at_import); if (Tok.is(tok::semi)) break; +if (Tok.is(tok::hash) || Tok.is(tok::at)) + return reportEr

[clang] [clang][dep-scan] Resolve lexer crash from a permutation of invalid tokens (PR #142452)

2025-06-02 Thread Argyrios Kyrtzidis via cfe-commits
@@ -503,6 +503,10 @@ bool Scanner::lexModuleDirectiveBody(DirectiveKind Kind, const char *&First, diag::err_dep_source_scanner_missing_semi_after_at_import); if (Tok.is(tok::semi)) break; +if (Tok.is(tok::hash) || Tok.is(tok::at)) + return reportEr

[clang] [clang][index] Skip over `#include UNDEF_IDENT` in single-file-parse mode (PR #135218)

2025-04-10 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/135218 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][index] Handle undefined function-like macros in single file parse mode (PR #135054)

2025-04-09 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/135054 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Index] Skip adding call relations to deduction guides (PR #126151)

2025-02-06 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/126151 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [flang] [llvm] [Clang] Remove ARCMigrate (PR #119269)

2025-01-29 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/119269 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] Fix build errors with a `LLVM_ENABLE_MODULES=ON` build (PR #107654)

2024-09-06 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi closed https://github.com/llvm/llvm-project/pull/107654 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] Fix build errors with a `LLVM_ENABLE_MODULES=ON` build (PR #107654)

2024-09-06 Thread Argyrios Kyrtzidis via cfe-commits
issing '#include "llvm/ADT/PostOrderIterator.h"'; 'ReversePostOrderTraversal' must be declared before it is used >From c7a035190d3883dcd755cf208030c2fbbd5b8fcf Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Fri, 6 Sep 2024 15:48:22 -0700 Subject: [PATCH] Fix build errors wi

[clang] [clang/Lex/DependencyDirectivesScanner] Ignore import/include directives with missing filenames without failing the scan (PR #100126)

2024-07-23 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi closed https://github.com/llvm/llvm-project/pull/100126 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang/Lex/DependencyDirectivesScanner] Ignore import/include directives with missing filenames without failing the scan (PR #100126)

2024-07-23 Thread Argyrios Kyrtzidis via cfe-commits
lated error. * Fix an issue where the lexer was skipping through the next directive, after ignoring the include with missing filename. >From 6167d5f1f95a2aa60e99805db59f06bec091a095 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 23 Jul 2024 06:40:42 -0700 Subject: [PATCH] [c

[clang] [clang-scan-deps] Ignore import/include directives with missing filenames (PR #99520)

2024-07-22 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/99520 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-scan-deps] Ignore import/include directives with missing filenames (PR #99520)

2024-07-22 Thread Argyrios Kyrtzidis via cfe-commits
akyrtzi wrote: > I switched to the unit test, though I didn't figure out how to capture the > same sort of round-trip testing as with the lit test. Are you not seeing the same "infinite calls append the same token into CurDirTokens" issue via the unit test? https://github.com/llvm/llvm-projec

[clang] [clang-scan-deps] Ignore import/include directives with missing filenames (PR #99520)

2024-07-19 Thread Argyrios Kyrtzidis via cfe-commits
akyrtzi wrote: This is similar feedback that I gave for https://github.com/llvm/llvm-project/pull/97654, could you test the change with a unit test in `DependencyDirectivesScannerTest.cpp` instead? It's much simpler to setup and execution-wise it's orders of magnitude more lightweight than a

[clang] [clang][deps] Don't treat ObjC method args as module directives (PR #97654)

2024-07-17 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/97654 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][deps] Don't treat ObjC method args as module directives (PR #97654)

2024-07-11 Thread Argyrios Kyrtzidis via cfe-commits
@@ -970,6 +970,26 @@ ort \ EXPECT_EQ(Directives[1].Kind, cxx_export_module_decl); } +TEST(MinimizeSourceToDependencyDirectivesTest, ObjCMethodArgs) { + SmallVector Out; + SmallVector Tokens; + SmallVector Directives; + + StringRef Source = R"( +@interface SomeObjcCla

[clang] [clang][deps] Don't treat ObjC method args as module directives (PR #97654)

2024-07-05 Thread Argyrios Kyrtzidis via cfe-commits
akyrtzi wrote: Could you test the change with a unit test in `DependencyDirectivesScannerTest.cpp` instead? It would be orders of magnitude more lightweight, execution wise, than a whole new lit test. https://github.com/llvm/llvm-project/pull/97654 _

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function (PR #88447)

2024-04-15 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi closed https://github.com/llvm/llvm-project/pull/88447 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function (PR #88447)

2024-04-15 Thread Argyrios Kyrtzidis via cfe-commits
akyrtzi wrote: > I assume you'll call resetBenignCodeGenOptions() from > ModuleDepCollector::applyDiscoveredDependencies() in a follow-up, non-NFC > patch, right? @jansvoboda11 see updated commit, I made the change per your suggestion. https://github.com/llvm/llvm-project/pull/88447 _

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function (PR #88447)

2024-04-15 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi edited https://github.com/llvm/llvm-project/pull/88447 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function (PR #88447)

2024-04-15 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi edited https://github.com/llvm/llvm-project/pull/88447 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function, NFC (PR #88447)

2024-04-15 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi updated https://github.com/llvm/llvm-project/pull/88447 >From 8b21183d5e836e0900ce051dab91f0a399ed83e5 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Thu, 11 Apr 2024 14:57:40 -0700 Subject: [PATCH] [clang/DependencyScanning/ModuleDepCollector] Refactor p

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function, NFC (PR #88447)

2024-04-11 Thread Argyrios Kyrtzidis via cfe-commits
@@ -308,6 +308,9 @@ class ModuleDepCollector final : public DependencyCollector { ModuleDeps &Deps); }; +/// Resets some options that introduce dependencies unnecessarily. +void removeUnnecessaryDependencies(CompilerInvocation &CI, bool ForMod

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function, NFC (PR #88447)

2024-04-11 Thread Argyrios Kyrtzidis via cfe-commits
@@ -154,6 +154,20 @@ void ModuleDepCollector::addOutputPaths(CowCompilerInvocation &CI, } } +void dependencies::removeUnnecessaryDependencies(CompilerInvocation &CI, + bool ForModuleBuild) { + if (CI.getFrontendOpts().Program

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function, NFC (PR #88447)

2024-04-11 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi edited https://github.com/llvm/llvm-project/pull/88447 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function, NFC (PR #88447)

2024-04-11 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi updated https://github.com/llvm/llvm-project/pull/88447 >From f96eadb5d41d2433cf0b114556eaaa5f0a66e250 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Thu, 11 Apr 2024 14:57:40 -0700 Subject: [PATCH] [clang/DependencyScanning/ModuleDepCollector] Refactor p

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function, NFC (PR #88447)

2024-04-11 Thread Argyrios Kyrtzidis via cfe-commits
@@ -154,6 +154,20 @@ void ModuleDepCollector::addOutputPaths(CowCompilerInvocation &CI, } } +void dependencies::removeUnnecessaryDependencies(CompilerInvocation &CI, + bool ForModuleBuild) { + if (CI.getFrontendOpts().Program

[clang] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function, NFC (PR #88447)

2024-04-11 Thread Argyrios Kyrtzidis via cfe-commits
rom: Argyrios Kyrtzidis Date: Thu, 11 Apr 2024 14:57:40 -0700 Subject: [PATCH] [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function, NFC The function is named `removeUnnecessaryDependencies` and is a bit more general that could be u

[clang] [clang][deps] Remove pgo profile flags from modules (PR #87724)

2024-04-05 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi closed https://github.com/llvm/llvm-project/pull/87724 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][deps] Remove pgo profile flags from modules (PR #87724)

2024-04-04 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi created https://github.com/llvm/llvm-project/pull/87724 These are not necessary when not performing codegen. >From 4a2b299e264ce2833786ab035cbb0938284c73ac Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Thu, 4 Apr 2024 15:57:28 -0700 Subject: [PATCH] [cl

[clang] [clang][deps] Lazy dependency directives (PR #86347)

2024-03-22 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. Nice! Note that you implemented rdar://107663951 🎉 https://github.com/llvm/llvm-project/pull/86347 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/lis

[clang] [Sema] Warn unused functions for FMV based on the target attribute (PR #81302)

2024-02-09 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/81302 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][sema] Fix -Wunused-function on target_version'd file-scope Fn's (PR #81167)

2024-02-08 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi approved this pull request. https://github.com/llvm/llvm-project/pull/81167 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi closed https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi updated https://github.com/llvm/llvm-project/pull/66122 >From 26b0440d81f4bbf8e666c1c11e200963fa2cddb4 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 12 Sep 2023 11:26:46 -0700 Subject: [PATCH] [DependencyScanningFilesystem] Make sure the local/sha

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi resolved https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi edited https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,63 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi updated https://github.com/llvm/llvm-project/pull/66122 >From 26b0440d81f4bbf8e666c1c11e200963fa2cddb4 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 12 Sep 2023 11:26:46 -0700 Subject: [PATCH 1/2] [DependencyScanningFilesystem] Make sure the lo

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-19 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi resolved https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-18 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi resolved https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-18 Thread Argyrios Kyrtzidis via cfe-commits
@@ -330,3 +359,24 @@ DependencyScanningWorkerFilesystem::openFileForRead(const Twine &Path) { return Result.getError(); return DepScanFile::create(Result.get()); } + +std::error_code DependencyScanningWorkerFilesystem::setCurrentWorkingDirectory( +const Twine &Path)

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-18 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi updated https://github.com/llvm/llvm-project/pull/66122 >From 1423e870d3bd0acc9554e4ca2b8884d520038844 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 12 Sep 2023 11:26:46 -0700 Subject: [PATCH] [DependencyScanningFilesystem] Make sure the local/sha

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-18 Thread Argyrios Kyrtzidis via cfe-commits
@@ -330,3 +353,20 @@ DependencyScanningWorkerFilesystem::openFileForRead(const Twine &Path) { return Result.getError(); return DepScanFile::create(Result.get()); } + +std::error_code DependencyScanningWorkerFilesystem::setCurrentWorkingDirectory( +const Twine &Path)

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-18 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi updated https://github.com/llvm/llvm-project/pull/66122 >From 5794986079f3eb0f52dd6089d50d994b4559ed06 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 12 Sep 2023 11:26:46 -0700 Subject: [PATCH] [DependencyScanningFilesystem] Make sure the local/sha

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-15 Thread Argyrios Kyrtzidis via cfe-commits
@@ -330,3 +353,20 @@ DependencyScanningWorkerFilesystem::openFileForRead(const Twine &Path) { return Result.getError(); return DepScanFile::create(Result.get()); } + +std::error_code DependencyScanningWorkerFilesystem::setCurrentWorkingDirectory( +const Twine &Path)

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-15 Thread Argyrios Kyrtzidis via cfe-commits
@@ -330,3 +353,20 @@ DependencyScanningWorkerFilesystem::openFileForRead(const Twine &Path) { return Result.getError(); return DepScanFile::create(Result.get()); } + +std::error_code DependencyScanningWorkerFilesystem::setCurrentWorkingDirectory( +const Twine &Path)

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-15 Thread Argyrios Kyrtzidis via cfe-commits
@@ -330,3 +353,20 @@ DependencyScanningWorkerFilesystem::openFileForRead(const Twine &Path) { return Result.getError(); return DepScanFile::create(Result.get()); } + +std::error_code DependencyScanningWorkerFilesystem::setCurrentWorkingDirectory( +const Twine &Path)

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-14 Thread Argyrios Kyrtzidis via cfe-commits
@@ -330,3 +353,20 @@ DependencyScanningWorkerFilesystem::openFileForRead(const Twine &Path) { return Result.getError(); return DepScanFile::create(Result.get()); } + +std::error_code DependencyScanningWorkerFilesystem::setCurrentWorkingDirectory( +const Twine &Path)

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-14 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-14 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi updated https://github.com/llvm/llvm-project/pull/66122: >From a457c0cfe749fe00ecde7145e9beb519c254eccd Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 12 Sep 2023 11:26:46 -0700 Subject: [PATCH] [DependencyScanningFilesystem] Make sure the local/sha

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi resolved https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi edited https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi updated https://github.com/llvm/llvm-project/pull/66122: >From 98e56d4d8d1f138cfc69c035425fafcdd57d5916 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 12 Sep 2023 11:26:46 -0700 Subject: [PATCH] [DependencyScanningFilesystem] Make sure the local/sha

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
@@ -330,3 +353,20 @@ DependencyScanningWorkerFilesystem::openFileForRead(const Twine &Path) { return Result.getError(); return DepScanFile::create(Result.get()); } + +std::error_code DependencyScanningWorkerFilesystem::setCurrentWorkingDirectory( +const Twine &Path)

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
@@ -215,44 +225,57 @@ DependencyScanningWorkerFilesystem::findEntryByFilenameWithWriteThrough( } llvm::ErrorOr -DependencyScanningWorkerFilesystem::computeAndStoreResult(StringRef Filename) { - llvm::ErrorOr Stat = getUnderlyingFS().status(Filename); +DependencyScanningWorke

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi review_requested https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi review_requested https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
erroneously returned. >From 10b69de2194d918fda31cbe3c0a097520c73d072 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Tue, 12 Sep 2023 11:26:46 -0700 Subject: [PATCH] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths Previously a relat

[clang] [DependencyScanningFilesystem] Make sure the local/shared cache filename lookups use only absolute paths (PR #66122)

2023-09-12 Thread Argyrios Kyrtzidis via cfe-commits
https://github.com/akyrtzi review_requested https://github.com/llvm/llvm-project/pull/66122 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D153670: [clang/HeaderSearch] Make sure `loadSubdirectoryModuleMaps` doesn't cause loading of regular files

2023-06-26 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG03a0f4b61ca5: [clang/HeaderSearch] Make sure `loadSubdirectoryModuleMaps` doesn't cause… (authored by akyrtzi). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/

[clang] 03a0f4b - [clang/HeaderSearch] Make sure `loadSubdirectoryModuleMaps` doesn't cause loading of regular files

2023-06-26 Thread Argyrios Kyrtzidis via cfe-commits
Author: Argyrios Kyrtzidis Date: 2023-06-26T10:18:02-07:00 New Revision: 03a0f4b61ca50a267a405a29ff1986473a55f9d9 URL: https://github.com/llvm/llvm-project/commit/03a0f4b61ca50a267a405a29ff1986473a55f9d9 DIFF: https://github.com/llvm/llvm-project/commit/03a0f4b61ca50a267a405a29ff1986473a55f9d9

[PATCH] D153670: [clang/HeaderSearch] Make sure `loadSubdirectoryModuleMaps` doesn't cause loading of regular files

2023-06-23 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi marked an inline comment as done. akyrtzi added inline comments. Comment at: clang/unittests/Tooling/DependencyScannerTest.cpp:274 +llvm::ErrorOr> +openFileForRead(const Twine &Path) override { + ReadFiles.push_back(Path.str()); benlangmuir w

[PATCH] D153670: [clang/HeaderSearch] Make sure `loadSubdirectoryModuleMaps` doesn't cause loading of regular files

2023-06-23 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi updated this revision to Diff 534123. akyrtzi added a comment. For the test also check for unnecessary `stat` call. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153670/new/ https://reviews.llvm.org/D153670 Files: clang/lib/Lex/HeaderSea

[PATCH] D153670: [clang/HeaderSearch] Make sure `loadSubdirectoryModuleMaps` doesn't cause loading of regular files

2023-06-23 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi created this revision. Herald added a project: All. akyrtzi requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. `HeaderSearch::loadSubdirectoryModuleMaps` `stat`s all the files in a directory which causes the dependency scanning servic

[PATCH] D150473: [clang/Driver] Also consider `gnu++` standard when checking for modules support

2023-05-18 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG5e975d4f67c0: [clang/Driver] Also consider `gnu++` standard when checking for modules support (authored by akyrtzi). Changed prior to commit: http

[clang] 5e975d4 - [clang/Driver] Also consider `gnu++` standard when checking for modules support

2023-05-18 Thread Argyrios Kyrtzidis via cfe-commits
Author: Argyrios Kyrtzidis Date: 2023-05-18T12:34:07-07:00 New Revision: 5e975d4f67c006420d0c65ccb0f5d08e3a352f46 URL: https://github.com/llvm/llvm-project/commit/5e975d4f67c006420d0c65ccb0f5d08e3a352f46 DIFF: https://github.com/llvm/llvm-project/commit/5e975d4f67c006420d0c65ccb0f5d08e3a352f46

[PATCH] D150473: [clang/Driver] Also consider `gnu++` standard when checking for modules support

2023-05-18 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added a comment. Ping 🙏 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150473/new/ https://reviews.llvm.org/D150473 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/c

[PATCH] D150473: [clang/Driver] Also consider `gnu++` standard when checking for modules support

2023-05-12 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi created this revision. Herald added a project: All. akyrtzi requested review of this revision. Herald added subscribers: cfe-commits, MaskRay. Herald added a project: clang. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D150473 Files: clang/lib/Driver/ToolChains/Clang.

[PATCH] D145088: [RISCV] Add attribute(riscv_rvv_vector_bits(N)) based on AArch64 arm_sve_vector_bits.

2023-04-30 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added a comment. `CodeGen` has the same issue: $ ninja tools/clang/lib/CodeGen/CMakeFiles/obj.clangCodeGen.dir/TargetInfo.cpp.o In file included from /llvm-project/clang/lib/CodeGen/TargetInfo.cpp:36: /llvm-project/llvm/include/llvm/TargetParser/RISCVTargetParser.h:32:10: fatal er

[PATCH] D145088: [RISCV] Add attribute(riscv_rvv_vector_bits(N)) based on AArch64 arm_sve_vector_bits.

2023-04-29 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added a comment. Hi @craig.topper , this patch is causing a build failure: In file included from /llvm-project/clang/lib/Sema/SemaType.cpp:43: /llvm-project/llvm/include/llvm/TargetParser/RISCVTargetParser.h:32:10: fatal error: 'llvm/TargetParser/RISCVTargetParserDef.inc' file not fo

[PATCH] D148369: [DependencyScanning] Canonicalize `CodeGenOptions.RelaxAll`

2023-04-19 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi updated this revision to Diff 515085. akyrtzi added a comment. Rebase on top of `main`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148369/new/ https://reviews.llvm.org/D148369 Files: clang/lib/Tooling/DependencyScanning/ModuleDepColle

[PATCH] D148369: [DependencyScanning] Canonicalize `CodeGenOptions.RelaxAll`

2023-04-17 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added inline comments. Comment at: clang/tools/clang-scan-deps/ClangScanDeps.cpp:905 + if (BriefResult) { +llvm::outs() << "num modules: " << FD->getNumModules() << '\n'; +return HadErrors; jansvoboda11 wrote: > akyrtzi wrote: > > jansvoboda11 wr

[PATCH] D147815: [clang][deps] Print timing information

2023-04-15 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added a comment. > Could you also add a -terse option, to avoid printing the full dependency info Note I added something like this in https://reviews.llvm.org/D148369, so ignore it for this patch. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.o

[PATCH] D148369: [DependencyScanning] Canonicalize `CodeGenOptions.RelaxAll`

2023-04-14 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi updated this revision to Diff 513828. akyrtzi added a comment. Remove `-optimize-args` from the test invocations since it's not relevant for the test. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148369/new/ https://reviews.llvm.org/D1483

[PATCH] D148369: [DependencyScanning] Canonicalize `CodeGenOptions.RelaxAll`

2023-04-14 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi updated this revision to Diff 513751. akyrtzi added a comment. Make sure to check `FD` is valid. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148369/new/ https://reviews.llvm.org/D148369 Files: clang/lib/Tooling/DependencyScanning/Modul

[PATCH] D148369: [DependencyScanning] Canonicalize `CodeGenOptions.RelaxAll`

2023-04-14 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added inline comments. Comment at: clang/tools/clang-scan-deps/ClangScanDeps.cpp:905 + if (BriefResult) { +llvm::outs() << "num modules: " << FD->getNumModules() << '\n'; +return HadErrors; jansvoboda11 wrote: > This assumes `FD` is not empty, i.

[PATCH] D148369: [DependencyScanning] Canonicalize `CodeGenOptions.RelaxAll`

2023-04-14 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi created this revision. Herald added a project: All. akyrtzi requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is particularly useful to avoid diverging the modules between a PCH and a translation-unit compilation. Repository:

[PATCH] D147815: [clang][deps] Print timing information

2023-04-07 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added a comment. Could you also add a `-terse` option, to avoid printing the full dependency info, if you mainly want to get the timing? Something like this: T.stopTimer(); if (PrintTiming) llvm::errs() << llvm::format( "clang-scan-deps timing: %0.2fs wall, %0.2fs process

[PATCH] D140996: [c++20] P1907R1: Support for generalized non-type template arguments of scalar type.

2023-03-13 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added a subscriber: bnbarham. akyrtzi added inline comments. Comment at: clang/lib/Index/USRGeneration.cpp:1032 + case TemplateArgument::UncommonValue: +// FIXME: Visit value. +break; erichkeane wrote: > bolshakov-a wrote: > > aaron.ballman wrote

[PATCH] D145473: [test/ARCMT/verify.m] Add lit test for `5e035651fd3acbb2645abbe80cae332d90eac78a` commit

2023-03-07 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
This revision was not accepted when it landed; it landed in state "Needs Review". This revision was automatically updated to reflect the committed changes. Closed by commit rGb3283bf192c6: [test/ARCMT/verify.m] Add lit test for `5e035651fd3acbb2645abbe80cae332d90eac78… (authored by akyrtzi). Rep

[clang] b3283bf - [test/ARCMT/verify.m] Add lit test for `5e035651fd3acbb2645abbe80cae332d90eac78a` commit

2023-03-07 Thread Argyrios Kyrtzidis via cfe-commits
Author: Argyrios Kyrtzidis Date: 2023-03-07T20:23:07-08:00 New Revision: b3283bf192c6dbd6416b58e42f90ca443e8f005d URL: https://github.com/llvm/llvm-project/commit/b3283bf192c6dbd6416b58e42f90ca443e8f005d DIFF: https://github.com/llvm/llvm-project/commit

[PATCH] D145256: [clang/Diagnostic] Use `optional` to disambiguate between a `StoredDiagMessage` that is not set vs set as empty string

2023-03-06 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added a comment. > Is this observable from a clang command line tool? Be nice to have a lit test. Added lit test here: https://reviews.llvm.org/D145473 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145256/new/ https://reviews.llvm.org/D145

[PATCH] D145473: [test/ARCMT/verify.m] Add lit test for `5e035651fd3acbb2645abbe80cae332d90eac78a` commit

2023-03-06 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi created this revision. Herald added a project: All. akyrtzi requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D145473 Files: clang/test/ARCMT/verify.m Index: clang/t

[PATCH] D145256: [clang/Diagnostic] Use `optional` to disambiguate between a `StoredDiagMessage` that is not set vs set as empty string

2023-03-03 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG5e035651fd3a: [clang/Diagnostic] Use `optional` to disambiguate between a `StoredDiagMessage`… (authored by akyrtzi). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llv

[clang] 5e03565 - [clang/Diagnostic] Use `optional` to disambiguate between a `StoredDiagMessage` that is not set vs set as empty string

2023-03-03 Thread Argyrios Kyrtzidis via cfe-commits
Author: Argyrios Kyrtzidis Date: 2023-03-03T12:48:48-08:00 New Revision: 5e035651fd3acbb2645abbe80cae332d90eac78a URL: https://github.com/llvm/llvm-project/commit/5e035651fd3acbb2645abbe80cae332d90eac78a DIFF: https://github.com/llvm/llvm-project/commit

[PATCH] D145256: [clang/Diagnostic] Use `optional` to disambiguate between a `StoredDiagMessage` that is not set vs set as empty string

2023-03-03 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi updated this revision to Diff 502201. akyrtzi added a comment. Avoid passing a new `IgnoringDiagConsumer` for the test since it's unused. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145256/new/ https://reviews.llvm.org/D145256 Files: c

[PATCH] D145256: [clang/Diagnostic] Use `optional` to disambiguate between a `StoredDiagMessage` that is not set vs set as empty string

2023-03-03 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi created this revision. Herald added a project: All. akyrtzi requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. "But when would you have a completely empty diagnostic message", you ask dear reader? That is when there is an empty "#warn

[PATCH] D141910: [OpenMP][OMPIRBuilder]Move SIMD alignment calculation to LLVM Frontend

2023-02-08 Thread Argyrios Kyrtzidis via Phabricator via cfe-commits
akyrtzi added a comment. In D141910#4112144 , @domada wrote: > @akyrtzi Thank you for your feedback. Can I land the patch? Fine be me. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141910/new/ https://reviews.llvm.org/D141910

  1   2   3   4   5   6   >