rsmith (Richard Smith - zygoloid)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 12 2012, 2:19 PM (274 w, 6 d)

Recent Activity

Yesterday

rsmith committed rL316056: Provide a flag group to turn on/off all "binary literals" extension warnings..
Provide a flag group to turn on/off all "binary literals" extension warnings.
Tue, Oct 17, 7:19 PM
rsmith committed rL316055: [modules] When finding the owning module of an instantiated context in template.
[modules] When finding the owning module of an instantiated context in template
Tue, Oct 17, 6:42 PM

Fri, Oct 13

rsmith accepted D37436: Initial implementation of C attributes (WG14 N2137).

Thanks, LGTM :)

Fri, Oct 13, 6:13 PM
rsmith committed rL315784: Fix backwards warning for use of C++17 attributes-on-namespaces-and-enumerators….
Fix backwards warning for use of C++17 attributes-on-namespaces-and-enumerators…
Fri, Oct 13, 5:56 PM
rsmith accepted D38678: [Sema] Warn about unused variables if we can constant evaluate the initializer..

Cunning, I like it :)

Fri, Oct 13, 5:36 PM

Thu, Oct 12

rsmith committed rL315662: Support for destroying operator delete, per C++2a proposal P0722..
Support for destroying operator delete, per C++2a proposal P0722.
Thu, Oct 12, 6:56 PM
rsmith accepted D38101: [Sema] Diagnose tautological comparison with type's min/max values.

Thanks, this looks great.

Thu, Oct 12, 12:19 PM · Restricted Project

Wed, Oct 11

rsmith added inline comments to D38101: [Sema] Diagnose tautological comparison with type's min/max values.
Wed, Oct 11, 5:05 PM · Restricted Project

Tue, Oct 10

rsmith committed rL315408: [modules] Fix visibility checking for using declarations via ADL..
[modules] Fix visibility checking for using declarations via ADL.
Tue, Oct 10, 6:50 PM
rsmith committed rL315402: [modules] Only take visible using-directives into account during name lookup..
[modules] Only take visible using-directives into account during name lookup.
Tue, Oct 10, 6:19 PM
rsmith committed rL315397: [Modules TS] Diagnose missing/duplicate module-declaration..
[Modules TS] Diagnose missing/duplicate module-declaration.
Tue, Oct 10, 5:37 PM
rsmith committed rL315381: [Modules TS] Diagnose attempts to enter module implementation units without the….
[Modules TS] Diagnose attempts to enter module implementation units without the…
Tue, Oct 10, 3:35 PM
rsmith committed rL315379: [Modules TS] Module ownership semantics for redeclarations..
[Modules TS] Module ownership semantics for redeclarations.
Tue, Oct 10, 3:33 PM
rsmith added inline comments to D26350: Keep invalid Switch in the AST.
Tue, Oct 10, 3:07 PM
rsmith added a comment to D38473: Include getting generated struct offsets in CodegenABITypes.

@rjmccall Do you have any more comments?

Tue, Oct 10, 2:25 PM
rsmith committed rL315366: Add test for regression caused by reverted patch r315251..
Add test for regression caused by reverted patch r315251.
Tue, Oct 10, 2:08 PM

Mon, Oct 9

rsmith committed rL315256: [Modules TS] Avoid computing the linkage of the enclosing DeclContext for a….
[Modules TS] Avoid computing the linkage of the enclosing DeclContext for a…
Mon, Oct 9, 5:49 PM
rsmith committed rL315251: [Modules TS] Module ownership semantics for redeclarations..
[Modules TS] Module ownership semantics for redeclarations.
Mon, Oct 9, 4:42 PM

Thu, Oct 5

rsmith requested changes to D37436: Initial implementation of C attributes (WG14 N2137).

Mostly looks good, other than the regression in enum parsing.

Thu, Oct 5, 5:09 PM
rsmith added a comment to D38473: Include getting generated struct offsets in CodegenABITypes.

Looks good to me.

Thu, Oct 5, 1:45 PM
rsmith committed rL315005: Fix two-phase name lookup for non-dependent overloaded operators..
Fix two-phase name lookup for non-dependent overloaded operators.
Thu, Oct 5, 12:37 PM

Wed, Oct 4

rsmith added a comment to D38101: [Sema] Diagnose tautological comparison with type's min/max values.

Thanks for the refactoring :)

Wed, Oct 4, 6:03 PM · Restricted Project
rsmith committed rL314957: Add testcase for r314956:.
Add testcase for r314956:
Wed, Oct 4, 5:50 PM
rsmith committed rL314956: PR33924: Merge block-scope anonymous declarations if there are multiple….
PR33924: Merge block-scope anonymous declarations if there are multiple…
Wed, Oct 4, 5:49 PM
rsmith committed rL314955: Remove PendingBody mechanism for function and ObjC method deserialization..
Remove PendingBody mechanism for function and ObjC method deserialization.
Wed, Oct 4, 5:45 PM
rsmith added a comment to D38525: Cleanup and generalize -shared-libasan..

Could we perhaps rename these flags to e.g. -static-libsan (with a -static-libasan alias for compatibility)? It seems confusing that the way to enable a static tsan runtime would be with -static-libasan.

Wed, Oct 4, 2:41 PM
rsmith added a comment to D38473: Include getting generated struct offsets in CodegenABITypes.
In D38473#888159, @mppf wrote:

You should also indicate *which* record layout (complete object type or base subobject type) the field number is for. I don't think there's any guarantee that the same indexes work in both.

I added a comment about this - indicating that inherited fields are not supported by this function. My use case is just for C structs at the moment and I'm not actually sure what we'd need to do for the interface to support building GEPs for inherited fields. I'm sure it would complicate the API. I think we should leave that complexity to another function or a future function (when somebody actually needs it).

Wed, Oct 4, 12:24 PM

Tue, Oct 3

rsmith committed rL314872: We allow implicit function declarations as an extension in all C dialects..
We allow implicit function declarations as an extension in all C dialects.
Tue, Oct 3, 7:00 PM
rsmith committed rL314871: PR34822: Fix a collection of related bugs with our handling of C89 implicit….
PR34822: Fix a collection of related bugs with our handling of C89 implicit…
Tue, Oct 3, 6:51 PM
rsmith added inline comments to D38101: [Sema] Diagnose tautological comparison with type's min/max values.
Tue, Oct 3, 5:20 PM · Restricted Project
rsmith added a comment to D38473: Include getting generated struct offsets in CodegenABITypes.

I have no philosophical objection to exposing this, but defer to @rjmccall on that. As is usual with our C++ API, there's no guarantee that we will keep this working in future versions. (Eg, if we move to an IR representation using something non-GEPable to represent a source-level class type, we would remove this function as it would be meaningless.)

Tue, Oct 3, 3:03 PM
rsmith accepted D38483: [ExprConstant] Allow constexpr ctor to modify non static data members in body.

LGTM, thank you!

Tue, Oct 3, 2:45 PM
rsmith committed rL314838: Suppress -Wmissing-braces warning when aggregate-initializing a struct with a….
Suppress -Wmissing-braces warning when aggregate-initializing a struct with a…
Tue, Oct 3, 1:37 PM

Mon, Oct 2

rsmith accepted D32199: [TySan] A Type Sanitizer (Clang).

This looks fine to me too, assuming the other parts get approved.

Mon, Oct 2, 7:23 PM
rsmith committed rL314754: R34811: Allow visibilities other than 'default' for VisibleNoLinkage entities..
R34811: Allow visibilities other than 'default' for VisibleNoLinkage entities.
Mon, Oct 2, 7:00 PM
rsmith added inline comments to D38483: [ExprConstant] Allow constexpr ctor to modify non static data members in body.
Mon, Oct 2, 5:03 PM
rsmith committed rL314733: PR33839: Fix -Wunused handling for structured binding declarations..
PR33839: Fix -Wunused handling for structured binding declarations.
Mon, Oct 2, 3:45 PM
rsmith added a comment to D35216: [analyzer] Escape symbols when creating std::initializer_list..
In D35216#856415, @NoQ wrote:

We already have the object's fields in the AST, with its AST record layout, however field names and layouts are implementation-dependent, and it is unsafe to try to understand how the specific standard library implementation's layout works and what specific private fields we see in the AST mean.

Mon, Oct 2, 12:03 PM

Fri, Sep 29

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

A couple of remaining pieces that I think are missing:

Fri, Sep 29, 5:43 PM
rsmith committed rL314570: Add a "vexing parse" warning for ambiguity between a variable declaration and a.
Add a "vexing parse" warning for ambiguity between a variable declaration and a
Fri, Sep 29, 4:59 PM

Tue, Sep 26

rsmith committed rL314246: Fix uninitialized member found by msan build bot..
Fix uninitialized member found by msan build bot.
Tue, Sep 26, 3:35 PM
rsmith committed rL314231: Resolve a defect in C++17 copy omission..
Resolve a defect in C++17 copy omission.
Tue, Sep 26, 3:35 PM

Mon, Sep 25

rsmith committed rL314067: Don't warn about runtime behavior problems in variable initializers that we.
Don't warn about runtime behavior problems in variable initializers that we
Mon, Sep 25, 5:08 AM
rsmith committed rL314054: Correctly compute linkage for members of internal linkage classes..
Correctly compute linkage for members of internal linkage classes.
Mon, Sep 25, 5:07 AM
rsmith committed rL314047: Fix up clang-tidy after clang r314037..
Fix up clang-tidy after clang r314037.
Mon, Sep 25, 5:07 AM
rsmith committed rL314037: DR1113: anonymous namespaces formally give their contents internal linkage..
DR1113: anonymous namespaces formally give their contents internal linkage.
Mon, Sep 25, 5:06 AM
rsmith added a comment to D37299: [Modules] Add ability to specify module name to module file mapping in a file.

I wonder whether this feature really pulls its weight compared to using @file and prepending -fmodule-file= to each line.

Mon, Sep 25, 5:02 AM

Thu, Sep 21

rsmith committed rL313957: Closure types have no name (and can't have a typedef name for linkage.
Closure types have no name (and can't have a typedef name for linkage
Thu, Sep 21, 9:34 PM
rsmith committed rL313955: Give external linkage and mangling to lambdas inside inline variables and….
Give external linkage and mangling to lambdas inside inline variables and…
Thu, Sep 21, 9:26 PM
rsmith committed rL313953: Clean up some mistreatment of enumerations..
Clean up some mistreatment of enumerations.
Thu, Sep 21, 7:24 PM
rsmith committed rL313948: Fix tracking of whether a destructor would be deleted..
Fix tracking of whether a destructor would be deleted.
Thu, Sep 21, 6:06 PM
rsmith committed rL313943: Extend -ast-dump for CXXRecordDecl to dump the flags from the DefinitionData..
Extend -ast-dump for CXXRecordDecl to dump the flags from the DefinitionData.
Thu, Sep 21, 5:12 PM

Wed, Sep 20

rsmith committed rL313827: Give external linkage and mangling to lambdas inside inline variables and….
Give external linkage and mangling to lambdas inside inline variables and…
Wed, Sep 20, 3:19 PM
rsmith committed rL313729: Implement C++ [basic.link]p8..
Implement C++ [basic.link]p8.
Wed, Sep 20, 12:23 AM

Tue, Sep 19

rsmith accepted D37881: [Sema] Prevent InstantiateClass from checking unrelated exception specs..

I don't like name SavePendingDelayedStateRAII as too vague. Hope you'll be able to suggest something better or I'll have better ideas later.

Tue, Sep 19, 1:45 PM

Sep 15 2017

rsmith added inline comments to D37933: Prevent InstCombine from miscompiling `operator delete` .
Sep 15 2017, 3:07 PM

Sep 14 2017

rsmith added a comment to D37538: [libc++] Remove problematic ADL in container implementations..

dlj and I discussed this offline somewhat, and dlj made the interesting point that using ADL *at all* within the implementation of the standard library brings with it the risk that your implementation will not function correctly if a user-declared operator could be at least as good a match as your intended callee.

Sep 14 2017, 6:50 PM

Sep 13 2017

rsmith added a reviewer for D37826: Refine generation of TBAA information in clang: rjmccall.
Sep 13 2017, 6:30 PM
rsmith accepted D37302: [Headers] Define *_HAS_SUBNORM for FLT, DBL, LDBL.

LGTM

Sep 13 2017, 5:36 PM
rsmith added a comment to D37436: Initial implementation of C attributes (WG14 N2137).

A large fraction of the number of attributes we'll want to use are going to fall into this category (because Clang doesn't have its own attributes, but copied GCC's, for many things). I don't think we'll get good implementation feedback until we have this figured out. If we can't sync with GCC soon, I suggest just making a reasonable guess. My first choice would be to just allowing everything, and then we can see what people found to be useful and why. Our experience here can also provide feedback to GCC (and we can always update late if needed - it is still an experimental feature).

Sep 13 2017, 4:43 PM

Sep 11 2017

rsmith added a comment to D37436: Initial implementation of C attributes (WG14 N2137).

If this is just supposed to be an experiment to get feedback on the feature, then I don't think we should be treating it as a different attribute syntax at all. Rather, I think we just want to permit C++11 attributes to be parsed in other language modes. If/when this becomes part of some future C working draft, I think that's the time to have a separate attribute syntax with a distinct set of valid unqualified attribute names.

Sep 11 2017, 4:21 PM
rsmith added inline comments to D37663: [AST] Make RecursiveASTVisitor visit CXXOperatorCallExpr in source order.
Sep 11 2017, 3:34 PM

Sep 10 2017

rsmith added a comment to D37667: [C++14][Sema] Disallow decltype(auto) deduction for lambdas.

decltype(auto) lambda = []{}; and decltype(auto) list = {0,1}; seem like very different situations to me; in the latter case, the initializer is not even an expression.

Sep 10 2017, 1:44 PM

Sep 8 2017

rsmith committed rL312851: Fix ownership of the MemoryBuffer in a FrontendInputFile..
Fix ownership of the MemoryBuffer in a FrontendInputFile.
Sep 8 2017, 6:15 PM
rsmith committed rL312850: [cxx_status] Change "Clang 5" items from yellow to green now that Clang 5 has….
[cxx_status] Change "Clang 5" items from yellow to green now that Clang 5 has…
Sep 8 2017, 6:12 PM
rsmith added a comment to D37436: Initial implementation of C attributes (WG14 N2137).

Accepting this under -std=c2x is premature. We don't even know whether there will be such a standard yet, and this has not been voted into a working draft. But the -f flag form is OK.

Sep 8 2017, 11:49 AM

Sep 7 2017

rsmith committed rL312749: Add target triple to improve the happiness of MSVC buildbots..
Add target triple to improve the happiness of MSVC buildbots.
Sep 7 2017, 3:09 PM
rsmith committed rL312743: Add IDNS_Tag to C++ declarations that conflict with tag declarations..
Add IDNS_Tag to C++ declarations that conflict with tag declarations.
Sep 7 2017, 1:23 PM
rsmith committed rL312703: P0702R1: in class template argument deduction from a list of one element, if.
P0702R1: in class template argument deduction from a list of one element, if
Sep 7 2017, 12:24 AM

Sep 6 2017

rsmith committed rL312700: Fix off-by-one error in block mangling..
Fix off-by-one error in block mangling.
Sep 6 2017, 10:42 PM
rsmith committed rL312696: [modules ts] Add test for [basic.link]p3..
[modules ts] Add test for [basic.link]p3.
Sep 6 2017, 10:31 PM
rsmith committed rL312684: [modules ts] Ensure that module linkage variables are always emitted and always….
[modules ts] Ensure that module linkage variables are always emitted and always…
Sep 6 2017, 5:57 PM
rsmith added a comment to D37538: [libc++] Remove problematic ADL in container implementations..

Looks good to me, but I'd like EricWF to also review.

Sep 6 2017, 5:01 PM
rsmith committed rL312665: [modules ts] Emit global variables in a module interface unit as part of that….
[modules ts] Emit global variables in a module interface unit as part of that…
Sep 6 2017, 1:02 PM
rsmith accepted D33719: Add _Float16 as a C/C++ source language type.
Sep 6 2017, 12:48 PM
rsmith added a reviewer for D37310: [Atomic] Merge alignment information from Decl and from Type when emit atomic expression.: rjmccall.
Sep 6 2017, 10:16 AM

Sep 5 2017

rsmith committed rL312580: Fix memory leak after r312467. The ModuleMap is the owner of the global module….
Fix memory leak after r312467. The ModuleMap is the owner of the global module…
Sep 5 2017, 2:47 PM
rsmith added inline comments to D37442: [C++17] Disallow lambdas in template parameters (PR33696)..
Sep 5 2017, 1:26 PM
rsmith accepted D37454: [coroutines] Make sure auto return type of await_resume is properly handled.
Sep 5 2017, 10:35 AM

Sep 4 2017

rsmith committed rL312506: Always allocate room for a ModuleDecl on the TranslationUnitDecl..
Always allocate room for a ModuleDecl on the TranslationUnitDecl.
Sep 4 2017, 5:53 PM
rsmith added inline comments to D37454: [coroutines] Make sure auto return type of await_resume is properly handled.
Sep 4 2017, 5:49 PM

Sep 3 2017

rsmith added a comment to D37433: [cxx_status] Mark coroutine TS support as clang 5.0 and change class from svn to full for P0096R4.

Part of this change (marking the coroutines TS as "Clang 5") is already done, and we will change all the class="svn" entries on this page to class="full" when Clang 5 releases (we keep them in the yellow "SVN" color until they're in a released version of Clang).

Sep 3 2017, 11:15 PM
rsmith committed rL312467: Implement Itanium name mangling support for C++ Modules TS..
Implement Itanium name mangling support for C++ Modules TS.
Sep 3 2017, 10:39 PM

Sep 1 2017

rsmith requested changes to D37381: Fix regression in special member definitions under SuppressAllDiagnostics.

It's not reasonable for external users of Clang's AST to infer deep meaning from the "invalid" flag. It's simply a mechanism by which we (a) limit the amount of follow-on diagnostics, and (b) somewhat weaken our AST invariants in the presence of invalid code; it is an implementation detail and subject to change at any time. (If a node is not marked invalid, that does not imply the corresponding source code is valid.)

Sep 1 2017, 4:42 PM

Aug 31 2017

rsmith committed rL312293: Mention the expected change to default -std= in future clang releases..
Mention the expected change to default -std= in future clang releases.
Aug 31 2017, 4:21 PM

Aug 30 2017

rsmith added inline comments to D37042: Teach clang to tolerate the 'p = nullptr + n' idiom used by glibc.
Aug 30 2017, 4:17 PM
rsmith committed rL312191: [cxx_status] Update to describe current status a bit better..
[cxx_status] Update to describe current status a bit better.
Aug 30 2017, 4:11 PM
rsmith committed rL312189: Consistently use code font for command-line flags in the release notes..
Consistently use code font for command-line flags in the release notes.
Aug 30 2017, 4:06 PM
rsmith committed rL312187: Add a couple of release note updates for C++ changes since Clang 4..
Add a couple of release note updates for C++ changes since Clang 4.
Aug 30 2017, 4:00 PM
rsmith added inline comments to D37042: Teach clang to tolerate the 'p = nullptr + n' idiom used by glibc.
Aug 30 2017, 2:55 PM

Aug 29 2017

rsmith added inline comments to D33719: Add _Float16 as a C/C++ source language type.
Aug 29 2017, 6:33 PM
rsmith committed rL312085: Give a better error if auto deduction fails due to inconsistent element types….
Give a better error if auto deduction fails due to inconsistent element types…
Aug 29 2017, 5:45 PM
rsmith added a comment to D35216: [analyzer] Escape symbols when creating std::initializer_list..

The CXXStdInitializerListExpr node has pretty simple evaluation semantics: it takes a glvalue array expression, and constructs a std::initializer_list<T> from it as if by filling in the two members with a pointer to the array and either the size of the array or a pointer to its end. Can we not model those semantics directly here?

Aug 29 2017, 5:28 PM
rsmith added inline comments to D37042: Teach clang to tolerate the 'p = nullptr + n' idiom used by glibc.
Aug 29 2017, 4:57 PM
rsmith committed rL312049: PR10147: When substituting a template template argument, substitute in the most.
PR10147: When substituting a template template argument, substitute in the most
Aug 29 2017, 3:18 PM
rsmith added a comment to D37042: Teach clang to tolerate the 'p = nullptr + n' idiom used by glibc.

I didn't think of this earlier, but strictly speaking, I think "(char*)nullptr+0" isn't undefined in C++?

Aug 29 2017, 1:48 PM

Aug 28 2017

rsmith committed rL311970: Improve constant expression evaluation of arrays of unknown bound..
Improve constant expression evaluation of arrays of unknown bound.
Aug 28 2017, 6:53 PM
rsmith added inline comments to D37235: Let -Wdelete-non-virtual-dtor fire in system headers too..
Aug 28 2017, 4:40 PM
rsmith added a comment to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

We'll also need to agree within the cxx-abi-dev list how to mangle lambda closure types for this form

Aug 28 2017, 2:18 PM
rsmith added a comment to D36527: Implemented P0428R2 - Familiar template syntax for generic lambdas.

This patch appears to be missing some necessary changes in the following places:

Aug 28 2017, 1:56 PM