Page MenuHomePhabricator

hamzasood (Hamza Sood)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 5 2017, 9:07 AM (137 w, 1 d)

Recent Activity

Jul 5 2019

hamzasood committed rGd14003d99f3d: NFC: Add an explicit return for safety and consistency (authored by hamzasood).
NFC: Add an explicit return for safety and consistency
Jul 5 2019, 7:39 AM
hamzasood committed rL365210: NFC: Add an explicit return for safety and consistency.
NFC: Add an explicit return for safety and consistency
Jul 5 2019, 7:36 AM

May 4 2019

hamzasood committed rG8205a814a691: [c++20] Implement P0428R2 - Familiar template syntax for generic lambdas (authored by hamzasood).
[c++20] Implement P0428R2 - Familiar template syntax for generic lambdas
May 4 2019, 3:48 AM
hamzasood committed rC359967: [c++20] Implement P0428R2 - Familiar template syntax for generic lambdas.
[c++20] Implement P0428R2 - Familiar template syntax for generic lambdas
May 4 2019, 3:48 AM
hamzasood committed rL359967: [c++20] Implement P0428R2 - Familiar template syntax for generic lambdas.
[c++20] Implement P0428R2 - Familiar template syntax for generic lambdas
May 4 2019, 3:48 AM
hamzasood closed D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
May 4 2019, 3:47 AM · Restricted Project

Dec 7 2018

hamzasood added inline comments to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
Dec 7 2018, 8:04 AM · Restricted Project
hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
  • Committed the test framework changes separately as r348589 and r348603.
  • Correctly cleanup the lambda scope if an error in encountered while parsing the template parameters.
  • Replaced getExplicitTemplateParameterCount with getExplicitTemplateParameters, which returns an ArrayRef. This simplifies the handling of the parameters in a few places.
  • Replaced a linear search over the template parameters with a binary search.
  • Added expected error cases to the template lambda usage tests to ensure that the static assertions are correctly instantiated.
  • Added a test for templated lambdas that're used within another template; TreeTransform already transforms the template parameter list so no change was needed to make the test pass.
Dec 7 2018, 8:01 AM · Restricted Project
hamzasood committed rC348603: [unittests] Add C++17 and C++2a support to the tooling tests.
[unittests] Add C++17 and C++2a support to the tooling tests
Dec 7 2018, 7:49 AM
hamzasood committed rL348603: [unittests] Add C++17 and C++2a support to the tooling tests.
[unittests] Add C++17 and C++2a support to the tooling tests
Dec 7 2018, 7:49 AM
hamzasood committed rL348589: [unittests] Merge the PrintedStmtCXX..Matches functions (NFC).
[unittests] Merge the PrintedStmtCXX..Matches functions (NFC)
Dec 7 2018, 4:58 AM
hamzasood committed rC348589: [unittests] Merge the PrintedStmtCXX..Matches functions (NFC).
[unittests] Merge the PrintedStmtCXX..Matches functions (NFC)
Dec 7 2018, 4:58 AM

Oct 13 2018

hamzasood added inline comments to D51868: [libcxx] Build and test fixes for Windows.
Oct 13 2018, 8:46 AM

Sep 19 2018

hamzasood added inline comments to D51868: [libcxx] Build and test fixes for Windows.
Sep 19 2018, 11:20 AM
hamzasood added inline comments to D51868: [libcxx] Build and test fixes for Windows.
Sep 19 2018, 7:25 AM
hamzasood updated the diff for D51868: [libcxx] Build and test fixes for Windows.

I've added a fix for another related issue: the tests would fail to link if libc++ is built only as a DLL.

Sep 19 2018, 7:25 AM

Sep 10 2018

hamzasood created D51868: [libcxx] Build and test fixes for Windows.
Sep 10 2018, 10:03 AM

Sep 9 2018

hamzasood committed rL341761: Fix build bots after a mistake in r341760.
Fix build bots after a mistake in r341760
Sep 9 2018, 6:14 AM
hamzasood committed rC341761: Fix build bots after a mistake in r341760.
Fix build bots after a mistake in r341760
Sep 9 2018, 6:14 AM
hamzasood added a comment to D51321: [Tooling] Improve handling of CL-style options.

Thanks for the help with this.
I reverted most of my changes (including the parameterised tests) before committing; I think I implemented all of your suggestions.

Sep 9 2018, 5:13 AM
hamzasood committed rC341760: [Tooling] Improve handling of CL-style options.
[Tooling] Improve handling of CL-style options
Sep 9 2018, 5:08 AM
hamzasood committed rL341760: [Tooling] Improve handling of CL-style options.
[Tooling] Improve handling of CL-style options
Sep 9 2018, 5:08 AM
hamzasood closed D51321: [Tooling] Improve handling of CL-style options.
Sep 9 2018, 5:07 AM

Aug 29 2018

hamzasood added inline comments to D51321: [Tooling] Improve handling of CL-style options.
Aug 29 2018, 8:30 AM
hamzasood updated the diff for D51321: [Tooling] Improve handling of CL-style options.

I've addressed most of your comments and resolved the merge conflicts introduced in r340838.

Aug 29 2018, 8:24 AM

Aug 28 2018

hamzasood added a comment to D51321: [Tooling] Improve handling of CL-style options.

Thanks for the detailed feedback; I’ll try to get a new patch up in a few hours.

Aug 28 2018, 12:29 PM
hamzasood updated the diff for D51321: [Tooling] Improve handling of CL-style options.
  • Re-uploaded with full context.
Aug 28 2018, 8:15 AM
hamzasood added inline comments to D51321: [Tooling] Improve handling of CL-style options.
Aug 28 2018, 1:51 AM

Aug 27 2018

hamzasood updated the diff for D51321: [Tooling] Improve handling of CL-style options.

Thanks, I've changed it so that the driver mode is calculated first.
I've also extended the unit test to include the various --driver-mode combinations.

Aug 27 2018, 3:27 PM
hamzasood created D51321: [Tooling] Improve handling of CL-style options.
Aug 27 2018, 2:05 PM

Aug 16 2018

hamzasood added a comment to D50764: [AST] Make NullStmt final and give it factory functions.

Thanks. I'm not planning to move forward with this until the contracts patch is ready (it might change enough to not even require this); that should leave plenty of time for others to take a look.

Aug 16 2018, 3:04 AM
hamzasood added a comment to D50662: Add dump() method for SourceRange.

This seems like a reasonable addition. Maybe it could also provide print and printToString to more closely match the SourceLocation API?

Aug 16 2018, 2:47 AM

Aug 15 2018

hamzasood created D50767: [C++2a] Parsing and semantic analysis for contracts (P0542R5).
Aug 15 2018, 4:59 AM
hamzasood created D50764: [AST] Make NullStmt final and give it factory functions.
Aug 15 2018, 4:24 AM
hamzasood created D50763: [Parser] Refactor and fix bugs in late-parsing.
Aug 15 2018, 4:12 AM · Restricted Project

Aug 2 2018

hamzasood updated the diff for D50021: [Support] Add casting iterator adapters.

Removed the extra predicate customisation point.

Aug 2 2018, 9:57 AM

Aug 1 2018

hamzasood updated the diff for D50021: [Support] Add casting iterator adapters.

The previous revision was an unnecessarily general solution to a specific problem.

Aug 1 2018, 6:51 AM

Jul 30 2018

hamzasood added a comment to D50021: [Support] Add casting iterator adapters.

There’re a lot of places where you need a type that you can write down. E.g. function return type.

Jul 30 2018, 3:52 PM
hamzasood created D50021: [Support] Add casting iterator adapters.
Jul 30 2018, 3:37 PM

Jul 23 2018

hamzasood updated the diff for D49647: [libcxx] Library support for contracts (C++2a).
  • Made the suggested test changes.
Jul 23 2018, 12:24 PM
hamzasood updated the diff for D49647: [libcxx] Library support for contracts (C++2a).
  • Added a missing visibility attribute.
  • Added a simple test that type-checks the expected public interface.
Jul 23 2018, 9:54 AM

Jul 22 2018

hamzasood created D49647: [libcxx] Library support for contracts (C++2a).
Jul 22 2018, 5:35 AM

Jul 21 2018

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
  • Resolved merge conflicts
Jul 21 2018, 3:22 PM · Restricted Project
hamzasood updated the diff for D41627: [Modules TS] Fix namespace visibility.
  • Don't assume that -fmodules-ts implies that we're in a TS module.
  • Don't ignore private namespaces when calculating the ownership kind.
Jul 21 2018, 1:53 PM
hamzasood updated the diff for D41566: [Modules TS] Diagnose exported internal linkage declarations.
  • Fixed the premature loop termination issue pointed out by @rsmith (and added a test case for it).
  • Fixed a few small issues regarding diagnosing exported enum/struct/union declarations without a name (especially anonymous unions at namespace-scope).
  • Factored out the loop body into a separate function to keep things tidy.
Jul 21 2018, 11:34 AM

Jun 10 2018

hamzasood added inline comments to D40443: [Modules TS] Make imports from an interface unit visible to its implementation units.
Jun 10 2018, 4:53 AM
hamzasood updated the diff for D40443: [Modules TS] Make imports from an interface unit visible to its implementation units.

Addressed Richard's comments.

Jun 10 2018, 4:50 AM

Dec 29 2017

hamzasood created D41627: [Modules TS] Fix namespace visibility.
Dec 29 2017, 4:06 AM

Dec 28 2017

hamzasood updated the diff for D41566: [Modules TS] Diagnose exported internal linkage declarations.

I've removed the isExported fix for namespaces as it's somewhat unrelated to this patch.
I'll do a separate patch for fixing namespaces (which will include the stuff removed from here and a bit more)

Dec 28 2017, 11:17 AM
hamzasood added inline comments to D40443: [Modules TS] Make imports from an interface unit visible to its implementation units.
Dec 28 2017, 7:09 AM
hamzasood updated the diff for D40443: [Modules TS] Make imports from an interface unit visible to its implementation units.

I've been investigating an issue regarding visibility during code synthesis, and I noticed that this patch half fixes it. I've added the rest of the fix since it's related to what's going on here, and I guess this is now a "correctly handle imports from an interface unit" patch.

Dec 28 2017, 3:33 AM

Dec 27 2017

hamzasood committed rL321494: [NFC] Small const correctness fix.
[NFC] Small const correctness fix
Dec 27 2017, 10:06 AM
hamzasood committed rC321494: [NFC] Small const correctness fix.
[NFC] Small const correctness fix
Dec 27 2017, 10:06 AM

Dec 24 2017

hamzasood created D41566: [Modules TS] Diagnose exported internal linkage declarations.
Dec 24 2017, 10:45 AM

Dec 21 2017

hamzasood added a comment to D40443: [Modules TS] Make imports from an interface unit visible to its implementation units.

Ping

Dec 21 2017, 11:24 AM

Dec 3 2017

hamzasood committed rCXX319631: Corrected a typo in the building libc++ docs.
Corrected a typo in the building libc++ docs
Dec 3 2017, 2:20 AM
hamzasood committed rL319631: Corrected a typo in the building libc++ docs.
Corrected a typo in the building libc++ docs
Dec 3 2017, 2:19 AM

Nov 24 2017

hamzasood updated the diff for D40443: [Modules TS] Make imports from an interface unit visible to its implementation units.

Good idea, I've added that to the test.
I'll give Richard some time to look over this before committing.

Nov 24 2017, 10:28 AM
hamzasood created D40443: [Modules TS] Make imports from an interface unit visible to its implementation units.
Nov 24 2017, 8:49 AM

Nov 21 2017

hamzasood committed rL318744: [Modules TS] Added module re-export support..
[Modules TS] Added module re-export support.
Nov 21 2017, 1:43 AM
hamzasood closed D40270: [Modules TS] Added re-export support by committing rL318744: [Modules TS] Added module re-export support..
Nov 21 2017, 1:43 AM

Nov 20 2017

hamzasood created D40270: [Modules TS] Added re-export support.
Nov 20 2017, 3:10 PM

Nov 15 2017

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Resolved merge conflicts from the last month of changes (unittests/AST/StmtPrinterTest.cpp and lib/AST/DeclCXX.cpp)

Nov 15 2017, 5:09 AM · Restricted Project

Oct 14 2017

hamzasood created D38919: [libcxx] Implemented <experimental/array> from Library Fundamentals V2.
Oct 14 2017, 2:59 AM

Oct 11 2017

hamzasood added a comment to D37182: [libcxx] Special visibility macros for the experimental library.

I have access now, so I'm able to commit this myself.
However it's been a while since it was approved, so I'd be grateful if someone could take another look to make sure nothing has changed in the meantime (besides potentially needing to re-tag some new APIs).

Oct 11 2017, 5:52 AM

Oct 9 2017

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
  • Updated lambda mangling to include explicit template parameters
  • Allow explicit template parameter lists on lambdas pre-c++2a as an extension.
  • Improved the somewhat fragile template depth handling.
  • Reformatted some asserts.
Oct 9 2017, 1:14 PM · Restricted Project
hamzasood committed rL315231: Testing commit access..
Testing commit access.
Oct 9 2017, 12:08 PM

Sep 12 2017

hamzasood updated the diff for D37376: [libcxx] Fix libc++experimental build on Windows.

Changed a CMake macro to a function.

Sep 12 2017, 2:16 AM

Sep 11 2017

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
  • Replaced an unneeded STLExtras.h include with <algorithm>.
  • Assert that the lambda template scope has a parent before accessing it.
  • Added an equals in a braced init as per the LLVM coding standards.
Sep 11 2017, 2:43 AM · Restricted Project

Sep 6 2017

hamzasood added a comment to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Ping

Sep 6 2017, 10:01 AM · Restricted Project

Sep 2 2017

hamzasood added a comment to D37182: [libcxx] Special visibility macros for the experimental library.

Thanks. Could someone commit this for me please?

Sep 2 2017, 11:28 AM

Sep 1 2017

hamzasood updated the diff for D37182: [libcxx] Special visibility macros for the experimental library.

Okay, I've split the patch up as requested.

Sep 1 2017, 3:15 AM
hamzasood created D37376: [libcxx] Fix libc++experimental build on Windows.
Sep 1 2017, 2:59 AM
hamzasood created D37375: [libcxx] Test case for the experimental library visibility macros.
Sep 1 2017, 2:54 AM

Aug 31 2017

hamzasood updated the diff for D37182: [libcxx] Special visibility macros for the experimental library.

I've added a couple more Windows macro-related fixes to the experimental library.

Aug 31 2017, 7:31 AM

Aug 30 2017

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Implemented pretty printing and recursive AST visiting (both with appropriate unit tests).

Aug 30 2017, 8:55 AM · Restricted Project

Aug 29 2017

hamzasood added a comment to D37182: [libcxx] Special visibility macros for the experimental library.

The other question, of course, is why the experimental library needs to be static. If it were built shared, the annotations would just work on Windows in theory (though I'm sure there are other issues there).

Aug 29 2017, 4:53 AM

Aug 28 2017

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Hi Richard, thanks for your feedback. This update makes the changes that you requested.
It turns out that the casting is no longer an issue since ParseTemplateParameters has been refactored to use NamedDecl.

Aug 28 2017, 3:03 AM · Restricted Project

Aug 26 2017

hamzasood created D37182: [libcxx] Special visibility macros for the experimental library.
Aug 26 2017, 9:00 AM
hamzasood added a comment to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Thanks for all of your feedback! It’s really helped to improve this patch.

Aug 26 2017, 3:02 AM · Restricted Project

Aug 25 2017

hamzasood added inline comments to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
Aug 25 2017, 4:38 AM · Restricted Project

Aug 21 2017

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
  • Info about a lambda's explicit template parameters is now exposed in the AST (see changes to LambdaExpr). It turns out that no extra storage was actually needed to achieve this.
Aug 21 2017, 10:51 AM · Restricted Project
hamzasood added inline comments to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
Aug 21 2017, 6:31 AM · Restricted Project
hamzasood added a comment to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

So to clarify: NumExplicitTemplateParams should be stored in LambdaDefinitionData (with an accessor in LambdaExpr) and ExplicitTemplateParamRange (SourceRange) should be stored in LambdaExpr?
That makes sense, but doesn't seem consistent with how things are currently stored. E.g. NumCaptures is stored in both LambdaDefinitionData and LambdaExpr.

Aug 21 2017, 4:55 AM · Restricted Project

Aug 20 2017

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Sorry, I've just spotted a small mistake in how the auto parameter depth is recorded.
This update fixes it.

Aug 20 2017, 9:05 AM · Restricted Project
hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
  • Corrected a typo.
  • Made HasExplicitTemplateParams const.
  • Reverted the change in where template depth is incremented and recorded.
  • Fixed the broken test.
  • Keep the template scope active instead of exiting it and manually introducing the template parameters into scope. I think this works fine now; you can see the fix in line 847 of SemaLambda.cpp. Basically having a template scope active resulted in the lambda being incorrectly marked as dependent, which broke a lot of stuff.
Aug 20 2017, 7:41 AM · Restricted Project
hamzasood added inline comments to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
Aug 20 2017, 5:11 AM · Restricted Project

Aug 19 2017

hamzasood updated the diff for D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Changed a documentation comment to use \brief instead of stating the function name.
Only enter the template parameter scope if needed.
Changed the phrasing of the diagnostic when an empty template parameter list is encountered.

Aug 19 2017, 3:58 AM · Restricted Project

Aug 18 2017

hamzasood updated the diff for D36572: Implemented P0409R2 - Allow lambda capture [=, this].

It's Friday, so hopefully this is good to go.
I don't have svn access, so could someone commit this for me?

Aug 18 2017, 9:05 AM
hamzasood added inline comments to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.
Aug 18 2017, 6:44 AM · Restricted Project

Aug 16 2017

hamzasood added a comment to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

Ping

Aug 16 2017, 5:13 AM · Restricted Project

Aug 14 2017

hamzasood added inline comments to D36572: Implemented P0409R2 - Allow lambda capture [=, this].
Aug 14 2017, 11:13 AM

Aug 13 2017

hamzasood added inline comments to D36572: Implemented P0409R2 - Allow lambda capture [=, this].
Aug 13 2017, 8:52 AM

Aug 11 2017

hamzasood updated the diff for D36572: Implemented P0409R2 - Allow lambda capture [=, this].

@rjmccall The warning is emitted, but you're right that there's no test to ensure that actually happens; test/CXX/expr/expr.prim/expr.prim.lambda/p8.cpp used Wno-c++2a-extensions to suppress the warning.

Aug 11 2017, 11:32 AM
hamzasood created D36611: Implemented P0683R1 - Default member initializers for bit-fields.
Aug 11 2017, 5:58 AM
hamzasood added inline comments to D36572: Implemented P0409R2 - Allow lambda capture [=, this].
Aug 11 2017, 2:45 AM

Aug 10 2017

hamzasood added inline comments to D36572: Implemented P0409R2 - Allow lambda capture [=, this].
Aug 10 2017, 2:03 PM
hamzasood added inline comments to D36572: Implemented P0409R2 - Allow lambda capture [=, this].
Aug 10 2017, 1:30 PM
hamzasood created D36584: Implemented P0704R1 - Fixing const-qualified pointers to members.
Aug 10 2017, 9:54 AM
hamzasood created D36572: Implemented P0409R2 - Allow lambda capture [=, this].
Aug 10 2017, 4:19 AM