rsmith (Richard Smith - zygoloid)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 12 2012, 2:19 PM (282 w, 5 d)

Recent Activity

Mon, Dec 11

rsmith accepted D39451: P0620 follow-up: deducing `auto` from braced-init-list in new expr.
Mon, Dec 11, 3:26 AM

Fri, Dec 8

rsmith accepted D40995: [TextDiagnosticBuffer] Fix diagnostic note emission order..

Huh, I'm amazed we've had this bug for so long. Thanks!

Fri, Dec 8, 7:28 PM
rsmith committed rC320212: Remove creation of out-of-bounds value of enumeration type (resulting in UB)..
Remove creation of out-of-bounds value of enumeration type (resulting in UB).
Fri, Dec 8, 3:30 PM
rsmith committed rL320212: Remove creation of out-of-bounds value of enumeration type (resulting in UB)..
Remove creation of out-of-bounds value of enumeration type (resulting in UB).
Fri, Dec 8, 3:30 PM
rsmith committed rL320211: Unify implementation of our two different flavours of -Wtautological-compare,.
Unify implementation of our two different flavours of -Wtautological-compare,
Fri, Dec 8, 2:58 PM
rsmith committed rC320211: Unify implementation of our two different flavours of -Wtautological-compare,.
Unify implementation of our two different flavours of -Wtautological-compare,
Fri, Dec 8, 2:57 PM
rsmith accepted D40901: Refactor lazy loading of template specializations. NFC.
Fri, Dec 8, 2:52 PM
rsmith committed rL320206: Avoid constructing an out-of-range value for an enumeration (which results in….
Avoid constructing an out-of-range value for an enumeration (which results in…
Fri, Dec 8, 2:33 PM
rsmith accepted D40948: Switch Clang's default C++ language target to C++14.

LGTM with the PS4 comment removed. Thank you!

Fri, Dec 8, 1:13 PM

Thu, Dec 7

rsmith committed rL320124: Fold together the in-range and out-of-range portions of -Wtautological-compare..
Fold together the in-range and out-of-range portions of -Wtautological-compare.
Thu, Dec 7, 5:01 PM
rsmith committed rC320124: Fold together the in-range and out-of-range portions of -Wtautological-compare..
Fold together the in-range and out-of-range portions of -Wtautological-compare.
Thu, Dec 7, 5:01 PM
rsmith added a comment to D39694: [VerifyDiagnosticConsumer] support -verify=<prefixes>.

I've not done a detailed review of the string manipulation here, but this looks like a great feature, thanks!

Thu, Dec 7, 4:57 PM
rsmith committed rL320122: Unify implementation of our two different flavours of -Wtautological-compare..
Unify implementation of our two different flavours of -Wtautological-compare.
Thu, Dec 7, 4:46 PM
rsmith committed rC320122: Unify implementation of our two different flavours of -Wtautological-compare..
Unify implementation of our two different flavours of -Wtautological-compare.
Thu, Dec 7, 4:46 PM
rsmith added a comment to D39451: P0620 follow-up: deducing `auto` from braced-init-list in new expr.

EDG and MSVC do not appear to treat this as a defect resolution; I suspect this is an oversight in GCC rather than an intentional extension. Let's convert the error to an (off by default) pedantic Extension (ISO C++11 does not allow ...), and suppress the extension warning in C++17 onwards.

Thu, Dec 7, 3:15 PM
rsmith added a comment to D35181: Defer addition of keywords to identifier table when loading AST.

LGTM, but I'd like the old IdentifierTable constructor to be removed if there are no callers left.

Thu, Dec 7, 3:06 PM
rsmith added inline comments to D40218: [Clang] Add __builtin_launder.
Thu, Dec 7, 3:02 PM
rsmith added a comment to D40948: Switch Clang's default C++ language target to C++14.

Thanks Richard. I'll file the bugs tomorrow for the issues you suggest. Do you see either of them blocking the change to C++14 as a default? On a scale of "no", "no but I want a commitment to fix them" and "yes" sort of thing.

Thu, Dec 7, 2:54 PM
rsmith added inline comments to D40948: Switch Clang's default C++ language target to C++14.
Thu, Dec 7, 1:25 PM
rsmith accepted D40625: Harmonizing attribute GNU/C++ spellings.

I think the LateParsed attributes are not going to work properly (because they'd be written in places where the function parameters are not in scope), so I wonder if we should avoid allowing them with [[clang::]] notation for now so we can choose to make them function type attributes in the future, but I'm happy with you making that call.

Thu, Dec 7, 12:48 PM
rsmith accepted D40225: Add -std=c17 as a flag.

LGTM, makes sense to add this for GCC compatibility even if the standard ends up being called C18.

Thu, Dec 7, 12:43 PM
rsmith accepted D39665: Support __has_c_attribute.

Please update the documentation and the release notes.

Thu, Dec 7, 12:42 PM

Wed, Dec 6

rsmith added a comment to D40567: Always show template parameters in IR type names.

Although code generation (in LTO compilation) might be unaffected by this distortions, other applications of IR linking suffer from it. It does not allow to implement some checks, validation techniques and optimizations.

Wed, Dec 6, 12:00 PM
rsmith committed rC319942: Delete special-case "out-of-range" handling for bools, and just use the normal.
Delete special-case "out-of-range" handling for bools, and just use the normal
Wed, Dec 6, 11:24 AM
rsmith committed rL319942: Delete special-case "out-of-range" handling for bools, and just use the normal.
Delete special-case "out-of-range" handling for bools, and just use the normal
Wed, Dec 6, 11:23 AM

Tue, Dec 5

rsmith accepted D39284: Allow conditions to be decomposed with structured bindings.

Thanks, LGTM!

Tue, Dec 5, 7:10 PM
rsmith committed rC319875: Fix a bunch of wrong "tautological unsigned enum compare" diagnostics in C++..
Fix a bunch of wrong "tautological unsigned enum compare" diagnostics in C++.
Tue, Dec 5, 7:01 PM
rsmith committed rL319875: Fix a bunch of wrong "tautological unsigned enum compare" diagnostics in C++..
Fix a bunch of wrong "tautological unsigned enum compare" diagnostics in C++.
Tue, Dec 5, 7:01 PM
rsmith committed rC319858: P0722R2: The first parameter in an implicit call to a destroying operator.
P0722R2: The first parameter in an implicit call to a destroying operator
Tue, Dec 5, 3:55 PM
rsmith committed rL319858: P0722R2: The first parameter in an implicit call to a destroying operator.
P0722R2: The first parameter in an implicit call to a destroying operator
Tue, Dec 5, 3:55 PM
rsmith committed rL319835: Use an even more precise triple to avoid errors on Darwin, where we don't use….
Use an even more precise triple to avoid errors on Darwin, where we don't use…
Tue, Dec 5, 1:30 PM
rsmith committed rC319835: Use an even more precise triple to avoid errors on Darwin, where we don't use….
Use an even more precise triple to avoid errors on Darwin, where we don't use…
Tue, Dec 5, 1:30 PM
rsmith added inline comments to D39284: Allow conditions to be decomposed with structured bindings.
Tue, Dec 5, 11:42 AM
rsmith committed rC319817: Give this test a triple to avoid failures on MS bots..
Give this test a triple to avoid failures on MS bots.
Tue, Dec 5, 11:40 AM
rsmith committed rL319817: Give this test a triple to avoid failures on MS bots..
Give this test a triple to avoid failures on MS bots.
Tue, Dec 5, 11:40 AM

Mon, Dec 4

rsmith added a comment to D40819: Implement Attribute Target MultiVersioning (Improved edition!).

I expect there are more places that need to be changed, but this is looking surprisingly clean.

Mon, Dec 4, 6:46 PM
rsmith committed rC319727: Generalize "static data member instantiated" notification to cover variable….
Generalize "static data member instantiated" notification to cover variable…
Mon, Dec 4, 5:32 PM
rsmith committed rL319727: Generalize "static data member instantiated" notification to cover variable….
Generalize "static data member instantiated" notification to cover variable…
Mon, Dec 4, 5:32 PM
rsmith accepted D40746: Correctly handle line table entries without filenames during AST serialization.

LGTM, thanks!

Mon, Dec 4, 1:32 PM

Fri, Dec 1

rsmith committed rC319605: PR35456: Track definedness of variable template specializations separately from.
PR35456: Track definedness of variable template specializations separately from
Fri, Dec 1, 6:49 PM
rsmith committed rL319605: PR35456: Track definedness of variable template specializations separately from.
PR35456: Track definedness of variable template specializations separately from
Fri, Dec 1, 6:49 PM
rsmith committed rC319601: Move comment back to being next to the code it's a comment for..
Move comment back to being next to the code it's a comment for.
Fri, Dec 1, 4:56 PM
rsmith committed rL319601: Move comment back to being next to the code it's a comment for..
Move comment back to being next to the code it's a comment for.
Fri, Dec 1, 4:56 PM
rsmith added a comment to D40746: Correctly handle line table entries without filenames during AST serialization.

The intent is to use a FilenameID of -1 to represent this situation; see the documentation of the LineEntry::FilenameID member. Users of that field are expected to deal with that value (see the handling of that case in SourceManager::getPresumedLoc for example). I think we need to handle it that way, rather than mapping to the main file name as this patch does, for correctness in the PCH case -- we don't actually *know* the correct main file name at the point where the line directive appears.

Fri, Dec 1, 2:16 PM
rsmith committed rC319584: [c++17] When deducing the type of a non-type template parameter from the type.
[c++17] When deducing the type of a non-type template parameter from the type
Fri, Dec 1, 1:25 PM
rsmith committed rL319584: [c++17] When deducing the type of a non-type template parameter from the type.
[c++17] When deducing the type of a non-type template parameter from the type
Fri, Dec 1, 1:25 PM
rsmith added a comment to D40731: Integrate CHash into CLang.

We already have mechanisms to hash the AST. I'm strongly opposed to adding another one (and requiring AST modifications to update yet more such mechanisms).

Fri, Dec 1, 11:47 AM
rsmith updated subscribers of D40731: Integrate CHash into CLang.
Fri, Dec 1, 11:46 AM

Thu, Nov 30

rsmith committed rC319513: [c++2a] P0515R3: Support for overloaded operator<=>..
[c++2a] P0515R3: Support for overloaded operator<=>.
Thu, Nov 30, 6:13 PM
rsmith committed rL319513: [c++2a] P0515R3: Support for overloaded operator<=>..
[c++2a] P0515R3: Support for overloaded operator<=>.
Thu, Nov 30, 6:13 PM
rsmith added inline comments to D39284: Allow conditions to be decomposed with structured bindings.
Thu, Nov 30, 5:27 PM
rsmith committed rL319509: [c++2a] P0515R3: lexer support for new <=> token..
[c++2a] P0515R3: lexer support for new <=> token.
Thu, Nov 30, 5:07 PM
rsmith committed rC319509: [c++2a] P0515R3: lexer support for new <=> token..
[c++2a] P0515R3: lexer support for new <=> token.
Thu, Nov 30, 5:07 PM
rsmith committed rC319495: Update website to mention that you still need -frelaxed-template-template-args….
Update website to mention that you still need -frelaxed-template-template-args…
Thu, Nov 30, 3:08 PM
rsmith committed rL319495: Update website to mention that you still need -frelaxed-template-template-args….
Update website to mention that you still need -frelaxed-template-template-args…
Thu, Nov 30, 3:08 PM
rsmith added a comment to D40673: Add _Float128 as alias to __float128 to enable compilations on Fedora27/glibc2-26.

Per https://gcc.gnu.org/onlinedocs/gcc/Floating-Types.html, this doesn't appear to be correct: _Float128 is only *sometimes* the same type as __float128.

Thu, Nov 30, 1:57 PM · Restricted Project
rsmith committed rC319408: Preserve the "last diagnostic was suppressed" flag across SFINAE checks..
Preserve the "last diagnostic was suppressed" flag across SFINAE checks.
Thu, Nov 30, 12:19 AM
rsmith committed rL319408: Preserve the "last diagnostic was suppressed" flag across SFINAE checks..
Preserve the "last diagnostic was suppressed" flag across SFINAE checks.
Thu, Nov 30, 12:19 AM

Wed, Nov 29

rsmith added inline comments to D40625: Harmonizing attribute GNU/C++ spellings.
Wed, Nov 29, 6:24 PM
rsmith added a comment to D40567: Always show template parameters in IR type names.

What actual problem is this solving? These IR type names exist only for the convenience of humans reading the IR, and making them long (potentially extremely long) by including template arguments seems likely to hinder that more than it helps.

Wed, Nov 29, 5:54 PM
rsmith accepted D39347: Fix __has_unique_object_representations based on rsmith's input.

Thanks for your patience, this turned out to be surprisingly complicated.

Wed, Nov 29, 5:37 PM
rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Wed, Nov 29, 5:14 PM
rsmith added inline comments to D40580: [clang-tidy] Adding Fuchsia checker for multiple inheritance.
Wed, Nov 29, 5:07 PM · Restricted Project
rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Wed, Nov 29, 3:56 PM
rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Wed, Nov 29, 3:19 PM

Tue, Nov 28

rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Tue, Nov 28, 7:36 PM
rsmith added inline comments to D40586: Implement p0457r2 - String Prefix and Suffix Checking.
Tue, Nov 28, 5:54 PM
rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Tue, Nov 28, 4:15 PM
rsmith added inline comments to D40586: Implement p0457r2 - String Prefix and Suffix Checking.
Tue, Nov 28, 4:12 PM
rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Tue, Nov 28, 3:38 PM
rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Tue, Nov 28, 3:26 PM
rsmith added a comment to D39347: Fix __has_unique_object_representations based on rsmith's input.

Please add tests for the member pointer cases across various different targets.

Tue, Nov 28, 2:51 PM

Mon, Nov 27

rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Mon, Nov 27, 6:46 PM
rsmith added inline comments to D39347: Fix __has_unique_object_representations based on rsmith's input.
Mon, Nov 27, 2:24 PM

Mon, Nov 20

rsmith accepted D40267: WG14 DR496.

Thanks!

Mon, Nov 20, 7:30 PM
rsmith accepted D40270: [Modules TS] Added re-export support.

Thanks, looks great.

Mon, Nov 20, 5:26 PM
rsmith accepted D40277: [MS] Increase default new alignment for win64 and test it.

Looks fine to me, but I think the alignment numbers in your summary are off by a factor of two.

Mon, Nov 20, 5:12 PM
rsmith added inline comments to D29930: Add `__reference_binds_to_temporary` trait for checking safe reference initialization..
Mon, Nov 20, 4:53 PM

Thu, Nov 16

rsmith committed rL318474: PR22763: if a defaulted (non-user-provided) special member function is.
PR22763: if a defaulted (non-user-provided) special member function is
Thu, Nov 16, 3:55 PM
rsmith added a comment to D38216: [C++17] Fix class template argument deduction for default constructors without an initializer.

So gcc got this wrong?

https://wandbox.org/permlink/RVApvaca1ebUfInn
Thu, Nov 16, 2:33 PM · Restricted Project
rsmith added a comment to D40144: Implement `std::launder`.

At least for GCC, it should use __builtin_launder.

I presume we'll need to add something similar for Clang as well.

Thu, Nov 16, 2:31 PM
rsmith added inline comments to D33989: [OpenCL] Allow targets to select address space per type.
Thu, Nov 16, 1:24 PM

Tue, Nov 14

rsmith committed rL318258: PR35214: don't crash if we see an array of unknown bound added to an empty but….
PR35214: don't crash if we see an array of unknown bound added to an empty but…
Tue, Nov 14, 7:04 PM
rsmith accepted D39579: BuiltinOperatorOverloadBuilder: Don't consider types that are unavailable on the target (PR35174).
Tue, Nov 14, 5:39 PM
rsmith committed rL318245: [modules] Fix crash in complex class merging scenario..
[modules] Fix crash in complex class merging scenario.
Tue, Nov 14, 5:35 PM
rsmith accepted D5767: Template Instantiation Observer + a few other templight-related changes.

LGTM

Tue, Nov 14, 4:50 PM
rsmith closed D38818: Template Instantiation Observer + a few other templight-related changes.

Let's keep the complete review thread together on https://reviews.llvm.org/D5767.

Tue, Nov 14, 4:49 PM
rsmith committed rL318201: Fix unused variable warning..
Fix unused variable warning.
Tue, Nov 14, 1:27 PM

Mon, Nov 13

rsmith added a comment to D38216: [C++17] Fix class template argument deduction for default constructors without an initializer.

So deducing from default initialization is indeed allowed, but extern
could be interpreted as outlawed because similar to the case of non-
inline static data member, where the declaration doesn't give the
initialization of that variable. @rsmith, comments?

Mon, Nov 13, 11:57 AM · Restricted Project

Nov 11 2017

rsmith committed rL317983: [cxx_status] Add resolution of CWG issue 1581, since it's an important, visible….
[cxx_status] Add resolution of CWG issue 1581, since it's an important, visible…
Nov 11 2017, 10:00 AM
rsmith committed rL317982: [cxx_status] Update for moved Albuquerque papers..
[cxx_status] Update for moved Albuquerque papers.
Nov 11 2017, 9:55 AM

Nov 8 2017

rsmith added a comment to D5767: Template Instantiation Observer + a few other templight-related changes.

I'm not entirely sure what's happening with this and https://reviews.llvm.org/D38818, but the direction looks good to me, and I left a couple of comments on the other review thread.

Nov 8 2017, 7:02 PM
rsmith accepted D38818: Template Instantiation Observer + a few other templight-related changes.

Thank you! Please move the tests to a new subdirectory under test, say test/Templight.

Nov 8 2017, 7:00 PM

Nov 3 2017

rsmith added a comment to D37299: [Modules] Add ability to specify module name to module file mapping in a file.

I'm still unconvinced that this mechanism is worth supporting.

Nov 3 2017, 3:19 PM

Nov 2 2017

rsmith committed rL317296: [c++17] Visit class template explicit specializations just like all other class….
[c++17] Visit class template explicit specializations just like all other class…
Nov 2 2017, 6:26 PM
rsmith added inline comments to D39579: BuiltinOperatorOverloadBuilder: Don't consider types that are unavailable on the target (PR35174).
Nov 2 2017, 5:36 PM

Nov 1 2017

rsmith committed rL317147: PR33746: Store the 'inline'ness of a static data member with the update record.
PR33746: Store the 'inline'ness of a static data member with the update record
Nov 1 2017, 6:06 PM
rsmith added a comment to D39521: [x86 TargetInfo] Pull CPU handling for the x86 TargetInfo into a .def file..

Thanks, this looks like a nice cleanup. I wonder of some of the switches over CPUKind (setting default features and macros) could also be moved into the .def file, but let's get this landed first and then see if that looks like an improvement.

Nov 1 2017, 5:40 PM
rsmith added inline comments to D38596: Implement attribute target multiversioning.
Nov 1 2017, 5:32 PM
rsmith added a comment to D38596: Implement attribute target multiversioning.

You should add tests for:

  • the PCH / Modules case (particularly regarding what happens when merging multiple copies of the same set of functions, for instance when they're defined inline); I would expect this doesn't currently work with this patch, because we only ever load one function body per redeclaration chain

I'm not sure I know what one of those looks like... is there a good test that I can use to learn the modules implementation?

Nov 1 2017, 5:26 PM