erichkeane (Erich Keane)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 28 2016, 8:37 AM (99 w, 1 d)

Recent Activity

Yesterday

erichkeane committed rL333087: Add myself to CREDITS.txt.
Add myself to CREDITS.txt
Wed, May 23, 7:44 AM
erichkeane abandoned D43628: [Sema][NFC] Split Function MultiVersioning decl semantic analysis into its own .cpp file..
Wed, May 23, 7:39 AM
erichkeane added inline comments to D45686: [Tooling] Clean up tmp files when creating a fixed compilation database.
Wed, May 23, 6:38 AM

Fri, May 18

erichkeane updated the diff for D47073: Document and Enforce new Host Compiler Policy.
Fri, May 18, 11:30 AM
erichkeane added inline comments to D47073: Document and Enforce new Host Compiler Policy.
Fri, May 18, 11:30 AM
erichkeane updated the diff for D47073: Document and Enforce new Host Compiler Policy.

Did @kparzysz 's suggestion to update the documentation (note, I changed it a bit), and @probinson 's suggestion to move the version numbers to variables.

Fri, May 18, 9:12 AM
erichkeane added inline comments to D47073: Document and Enforce new Host Compiler Policy.
Fri, May 18, 8:48 AM
erichkeane added inline comments to D47073: Document and Enforce new Host Compiler Policy.
Fri, May 18, 8:38 AM
erichkeane updated the diff for D47073: Document and Enforce new Host Compiler Policy.
Fri, May 18, 8:38 AM
erichkeane created D47073: Document and Enforce new Host Compiler Policy.
Fri, May 18, 8:25 AM

Wed, May 16

erichkeane added a comment to D43352: Add support for __declspec(code_seg("segname")).

Woops, forgot the tests when commiting, so see R332492 for the lit tests.

Wed, May 16, 10:08 AM
erichkeane committed rC332492: Add lit tests forgotten for R332470.
Add lit tests forgotten for R332470
Wed, May 16, 10:08 AM
erichkeane committed rL332492: Add lit tests forgotten for R332470.
Add lit tests forgotten for R332470
Wed, May 16, 10:08 AM
erichkeane committed rL332470: Add support for __declspec(code_seg("segname")).
Add support for __declspec(code_seg("segname"))
Wed, May 16, 7:01 AM
erichkeane committed rC332470: Add support for __declspec(code_seg("segname")).
Add support for __declspec(code_seg("segname"))
Wed, May 16, 7:01 AM
erichkeane closed D43352: Add support for __declspec(code_seg("segname")).
Wed, May 16, 7:01 AM

Thu, May 10

erichkeane added a comment to D46723: Require GCC 5.1 and LLVM 3.5 at a minimum.

Additionally, IMO, I'd think we would be better off specifying Clang 3.5. Being able to specify c++14 vs c++1y seems worth the minor inconvenience unless there is a platform we care about that ships 3.4. FWIW, 5.1 supports c++14.

Thu, May 10, 1:54 PM

Tue, May 8

erichkeane committed rC331812: Fix float->int conversion warnings when near barriers..
Fix float->int conversion warnings when near barriers.
Tue, May 8, 2:30 PM
erichkeane committed rL331812: Fix float->int conversion warnings when near barriers..
Fix float->int conversion warnings when near barriers.
Tue, May 8, 2:30 PM
erichkeane added a comment to D46535: Correct warning on Float->Integer conversions..

The check for whether an input is "out of range" doesn't handle fractions correctly. Testcase:

int a() { return 2147483647.5; }
unsigned b() { return -.5; }
Tue, May 8, 1:17 PM

Mon, May 7

erichkeane committed rL331688: [NFC] Move 2 variable initialization from Ctor to member initializers..
[NFC] Move 2 variable initialization from Ctor to member initializers.
Mon, May 7, 3:04 PM
erichkeane committed rC331688: [NFC] Move 2 variable initialization from Ctor to member initializers..
[NFC] Move 2 variable initialization from Ctor to member initializers.
Mon, May 7, 3:04 PM
erichkeane committed rL331673: Correct warning on Float->Integer conversions..
Correct warning on Float->Integer conversions.
Mon, May 7, 1:56 PM
erichkeane committed rC331673: Correct warning on Float->Integer conversions..
Correct warning on Float->Integer conversions.
Mon, May 7, 1:56 PM
erichkeane closed D46535: Correct warning on Float->Integer conversions..
Mon, May 7, 1:56 PM
erichkeane updated the diff for D46535: Correct warning on Float->Integer conversions..

Aaron's comments :)

Mon, May 7, 1:38 PM
erichkeane added inline comments to D46535: Correct warning on Float->Integer conversions..
Mon, May 7, 1:31 PM
erichkeane committed rL331651: Fix explicit template parameter reporting for narrowing conversions.
Fix explicit template parameter reporting for narrowing conversions
Mon, May 7, 10:09 AM
erichkeane abandoned D42664: Fix explicit template parameter reporting for narrowing conversions.

Did Review-after-commit, in retrospect this is a pretty tiny change.

Mon, May 7, 10:09 AM
erichkeane committed rC331651: Fix explicit template parameter reporting for narrowing conversions.
Fix explicit template parameter reporting for narrowing conversions
Mon, May 7, 10:09 AM
erichkeane created D46535: Correct warning on Float->Integer conversions..
Mon, May 7, 9:59 AM

Fri, May 4

erichkeane committed rC331536: [NFC]Convert Class to use member initialization instead of inline..
[NFC]Convert Class to use member initialization instead of inline.
Fri, May 4, 9:23 AM
erichkeane committed rL331536: [NFC]Convert Class to use member initialization instead of inline..
[NFC]Convert Class to use member initialization instead of inline.
Fri, May 4, 9:23 AM
erichkeane committed rC331533: [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP….
[clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP…
Fri, May 4, 9:02 AM
erichkeane committed rL331533: [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP….
[clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP…
Fri, May 4, 9:02 AM
erichkeane closed D46394: [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP or /P.
Fri, May 4, 9:02 AM
erichkeane accepted D46394: [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP or /P.
Fri, May 4, 9:01 AM

Thu, May 3

erichkeane requested changes to D46394: [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP or /P.

When building this, it didn't build since you'd reused the name. I changed the variable to be named "Dest" instead of "Destination"

Thu, May 3, 10:21 AM
erichkeane accepted D46394: [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP or /P.

This looks fine to me. Let me know if you need me to commit this for you.

Thu, May 3, 9:22 AM
erichkeane added inline comments to D46394: [clang-cl] Print /showIncludes to stderr, if used in combination with /E, /EP or /P.
Thu, May 3, 8:41 AM

Tue, May 1

erichkeane committed rC331263: Add Microsoft Mangling for OpenCL Half Type.
Add Microsoft Mangling for OpenCL Half Type
Tue, May 1, 7:19 AM
erichkeane committed rL331263: Add Microsoft Mangling for OpenCL Half Type.
Add Microsoft Mangling for OpenCL Half Type
Tue, May 1, 7:19 AM
erichkeane closed D46131: Add Microsoft Mangling for OpenCL Half Type.
Tue, May 1, 7:19 AM · Restricted Project
erichkeane closed D46131: Add Microsoft Mangling for OpenCL Half Type.
Tue, May 1, 7:19 AM · Restricted Project

Apr 19 2018

erichkeane committed rL330331: Fix __attribute__((force_align_arg_pointer)) misalignment bug.
Fix __attribute__((force_align_arg_pointer)) misalignment bug
Apr 19 2018, 7:31 AM
erichkeane committed rC330331: Fix __attribute__((force_align_arg_pointer)) misalignment bug.
Fix __attribute__((force_align_arg_pointer)) misalignment bug
Apr 19 2018, 7:31 AM
erichkeane closed D45812: Fix __attribute__((force_align_arg_pointer)) misalignment bug.
Apr 19 2018, 7:31 AM · Restricted Project
erichkeane accepted D45812: Fix __attribute__((force_align_arg_pointer)) misalignment bug.

LGTM, Do you have commit access, or do you want me to commit it for you?

Apr 19 2018, 7:21 AM · Restricted Project
erichkeane added a comment to D45812: Fix __attribute__((force_align_arg_pointer)) misalignment bug.

Can you make sure that this doesn't cause stackrealign to happen 2x if using -mstackrealign? Additionally, please provide the diff with full-context (see https://llvm.org/docs/Phabricator.html#requesting-a-review-via-the-web-interface). What is the commit before this? The line numbers don't look right to me.

Apr 19 2018, 6:20 AM · Restricted Project
erichkeane added a reviewer for D45812: Fix __attribute__((force_align_arg_pointer)) misalignment bug: aaron.ballman.
Apr 19 2018, 6:06 AM · Restricted Project

Apr 17 2018

erichkeane committed rC330225: Add Microsoft mangling for _Float16.
Add Microsoft mangling for _Float16
Apr 17 2018, 3:04 PM
erichkeane committed rL330225: Add Microsoft mangling for _Float16.
Add Microsoft mangling for _Float16
Apr 17 2018, 3:04 PM
erichkeane closed D45738: Add Microsoft mangling for _Float16, similar to technique used for _Complex.
Apr 17 2018, 3:04 PM
erichkeane added a comment to D45738: Add Microsoft mangling for _Float16, similar to technique used for _Complex.

FWIW, this demangles on both demangler.com and undname as "void cdecl Float16::f(struct clang::_Float16)", which seems like the right thing, since the "Complex" above demangles to: "void cdecl Complex::f(struct clang::_Complex<int>)"

Apr 17 2018, 2:24 PM
erichkeane added reviewers for D45738: Add Microsoft mangling for _Float16, similar to technique used for _Complex: compnerd, rnk.
Apr 17 2018, 2:20 PM

Apr 16 2018

erichkeane committed rC330160: Limit types of builtins that can be redeclared..
Limit types of builtins that can be redeclared.
Apr 16 2018, 2:35 PM
erichkeane committed rL330160: Limit types of builtins that can be redeclared..
Limit types of builtins that can be redeclared.
Apr 16 2018, 2:35 PM
erichkeane closed D45383: Limit types of builtins that can be redeclared..
Apr 16 2018, 2:35 PM · Restricted Project
erichkeane updated the diff for D45383: Limit types of builtins that can be redeclared..

Revert unnecessary test changes... :/

Apr 16 2018, 2:24 PM · Restricted Project
erichkeane updated the diff for D45383: Limit types of builtins that can be redeclared..

Added the exception for MSVC's va_start. va_start is a normal function on Linux, so it isn't an error on non-windows either.

Apr 16 2018, 1:16 PM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

I don't see an A in LANGBUILTIN(__va_start, "vc**.", "nt", ALL_MS_LANGUAGES)

Apr 16 2018, 12:25 PM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

We can could add an exception to the "don't allow redeclarations with custom type-checking" rule to specifically allow redeclaring __va_start. The general rule is that we don't want user code redeclaring them because they don't have a specific signature, so our internal representation could change between releases. But __va_start has a specific fixed signature from the Microsoft SDK headers, so it should be fine to allow redeclaring it without a warning.

Apr 16 2018, 12:14 PM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..
Snipping bits from `va_defs.h`:
#elif defined _M_ARM64

    void __cdecl __va_start(va_list*, ...);

    #define __crt_va_start_a(ap,v) ((void)(__va_start(&ap, _ADDRESSOF(v), _SLOTSIZEOF(v), __alignof(v), _ADDRESSOF(v))))
...

#elif defined _M_X64

    void __cdecl __va_start(va_list* , ...);

    #define __crt_va_start_a(ap, x) ((void)(__va_start(&ap, x)))

...

This looks like a declaration to me. Although, this is in system headers, so maybe we can ignore it by means of the system header suppression? The minor problem with that is that clang-cl (and the clang driver with the windows triple) do not support -isystem or -isysroot or --sysroot arguments. I suppose that as long as we expose the cc1 option (I imagine that clang-cl will pass the system paths appropriately), that is one option.

Apr 16 2018, 5:55 AM · Restricted Project

Apr 12 2018

erichkeane committed rL329952: [NFC] Fix terrible formatting of CGRecordLower constructor..
[NFC] Fix terrible formatting of CGRecordLower constructor.
Apr 12 2018, 1:49 PM
erichkeane committed rC329952: [NFC] Fix terrible formatting of CGRecordLower constructor..
[NFC] Fix terrible formatting of CGRecordLower constructor.
Apr 12 2018, 1:49 PM
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

I know that the Windows SDK definitely declares the __va_start function. Did you try building something like swift against the Windows SDK with this change?

Apr 12 2018, 11:22 AM · Restricted Project

Apr 10 2018

erichkeane updated the diff for D45383: Limit types of builtins that can be redeclared..

Restrict overloads as well.

Apr 10 2018, 1:36 PM · Restricted Project
erichkeane updated the diff for D45383: Limit types of builtins that can be redeclared..

Eli's suggestion for implementation.

Apr 10 2018, 10:55 AM · Restricted Project

Apr 9 2018

erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

Basically, yes, although I was thinking you could be a bit more aggressive. At least, anything marked "t" for custom typechecking is probably not something which should be redeclared.

Apr 9 2018, 12:25 PM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

I believe it is permissible to implement va_copy and va_end as a function, isn't it?

I guess you could, in theory, but LLVM doesn't support any targets which do that.

Apr 9 2018, 12:08 PM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

I don't see redeclaring the latter 3 as being disallowed,

It is in fact disallowed by the standard, in the section describing va_start/va_arg/va_end/va_copy: "If a macro definition is suppressed in order to access an actual function, or a program defines an external identifier with the same name, the behavior is undefined."

Apr 9 2018, 11:38 AM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

vprintf is handled using the exact same code-paths. SO, it'll have its 2nd parameter created with type 'char*&'

vprintf is defined in the C standard as "int vprintf(const char *format, va_list arg);"; on Windows, that's equivalent to "int vprintf(const char *format, char* arg);". If a reference is showing up anywhere, something has gone seriously wrong before we get anywhere near the type merging code.

Apr 9 2018, 9:10 AM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

Identical to what? __builtin_va_start and __builtin_va_end specifically are weird because they're builtins which have a signature which can't be expressed in C. vprintf doesn't have that problem.

Builtins.def makes the relevant distinction already: a "BUILTIN" is a reserved identifier the user isn't allowed to redeclare, and a "LIBBUILTIN" is a library function which the compiler has special knowledge of.

Apr 9 2018, 8:54 AM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

How could this patch possibly affect vprintf?

Apr 9 2018, 5:57 AM · Restricted Project

Apr 6 2018

erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

By "builtins" I meant specifically the stuff that that user code isn't allowed to declare, like __builtin_*, since they often have weird/incomplete signatures.

Apr 6 2018, 2:13 PM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

One big issue with just disallowing redecls of builtins is we have is that a number of these are actually expected to be in the system headers/libraries (such as vprintf). A ton of the math.h functions are also builtins.

Apr 6 2018, 1:29 PM · Restricted Project
erichkeane added a comment to D45383: Limit types of builtins that can be redeclared..

Rather than adding weird hacks to merging, can we just reject any attempt to redeclare a builtin?

Apr 6 2018, 1:06 PM · Restricted Project
erichkeane created D45383: Limit types of builtins that can be redeclared..
Apr 6 2018, 11:38 AM · Restricted Project

Mar 23 2018

erichkeane added a comment to D44826: Add -Wunused-using, a warning that finds unused using declarations..

My opinion matters less than @rsmith or @dblaikie on the review, but it seems to me that Typedef and Using are SO similar that the implementations should just be combined. You'd likely have to change a couple of types along the way to be more generic, but the implementations are essentially a copy/paste of eachother.

Mar 23 2018, 6:41 AM · Restricted Project

Mar 22 2018

erichkeane accepted D43821: [SemaCXX] _Pragma("clang optimize off") not affecting lambda..
Mar 22 2018, 5:37 AM · Restricted Project

Mar 20 2018

erichkeane committed rL328051: Change ImplicitConverionKind comments to refer to C++ stable names[NFC].
Change ImplicitConverionKind comments to refer to C++ stable names[NFC]
Mar 20 2018, 3:08 PM
erichkeane committed rC328051: Change ImplicitConverionKind comments to refer to C++ stable names[NFC].
Change ImplicitConverionKind comments to refer to C++ stable names[NFC]
Mar 20 2018, 3:08 PM

Mar 19 2018

erichkeane added a comment to D44426: Fix llvm + clang build with Intel compiler .

Adding @mibintc to take a look, as she's a good representative of the ICC dev team.

Mar 19 2018, 9:41 AM
erichkeane added a reviewer for D44426: Fix llvm + clang build with Intel compiler : mibintc.
Mar 19 2018, 9:41 AM

Mar 8 2018

erichkeane added a comment to D38803: Suppress generation of a deleting destructor for a dllimport record..
In D38803#1030905, @rnk wrote:

Can you check the base revision you used to upload the patch? I think there should just be new test case code now.

Yes. Can you please commit the test case?

Mar 8 2018, 6:27 AM

Mar 6 2018

erichkeane added inline comments to D43821: [SemaCXX] _Pragma("clang optimize off") not affecting lambda..
Mar 6 2018, 6:51 AM · Restricted Project

Mar 2 2018

erichkeane committed rC326623: Remove -i command line option, add -imultilib.
Remove -i command line option, add -imultilib
Mar 2 2018, 1:56 PM
erichkeane committed rL326623: Remove -i command line option, add -imultilib.
Remove -i command line option, add -imultilib
Mar 2 2018, 1:56 PM
erichkeane closed D44032: Remove -i command line option, add -imultilib.
Mar 2 2018, 1:56 PM
erichkeane updated the diff for D44032: Remove -i command line option, add -imultilib.

Talked to Aaron and came up with a way of covering with a testcase.

Mar 2 2018, 1:47 PM
erichkeane created D44032: Remove -i command line option, add -imultilib.
Mar 2 2018, 10:44 AM

Feb 28 2018

erichkeane added inline comments to D41950: Fix for Bug 8446. Template instantiation without a 'typename' keyword..
Feb 28 2018, 7:48 AM

Feb 26 2018

erichkeane added inline comments to D41880: Adding nocf_check attribute for cf-protection fine tuning .
Feb 26 2018, 2:43 PM

Feb 22 2018

erichkeane added a comment to D43576: Solution to fix PR27066 - Redefinition with same mangled name as another definition (dllexport and uuid).

It seems to me that the test here is very much lacking. It doesn't seem to include the example you've mentioned, and has no validation to ensure that there is a single instantiation happening. I'd like to see what happens when a UUID is passed as a pack, how SFINAE works on it, etc.

Feb 22 2018, 11:36 AM
erichkeane added a reviewer for D43576: Solution to fix PR27066 - Redefinition with same mangled name as another definition (dllexport and uuid): rsmith.
Feb 22 2018, 11:18 AM
erichkeane created D43628: [Sema][NFC] Split Function MultiVersioning decl semantic analysis into its own .cpp file..
Feb 22 2018, 9:20 AM

Feb 21 2018

erichkeane committed rC325716: Replace incorrect usage of isInvalidDecl with intended setInvalidDecl .
Replace incorrect usage of isInvalidDecl with intended setInvalidDecl
Feb 21 2018, 12:31 PM
erichkeane committed rL325716: Replace incorrect usage of isInvalidDecl with intended setInvalidDecl .
Replace incorrect usage of isInvalidDecl with intended setInvalidDecl
Feb 21 2018, 12:31 PM

Feb 20 2018

erichkeane committed rL325633: [NFC] In Multiversion Check function, switch to return Diag.
[NFC] In Multiversion Check function, switch to return Diag
Feb 20 2018, 2:28 PM
erichkeane committed rC325633: [NFC] In Multiversion Check function, switch to return Diag.
[NFC] In Multiversion Check function, switch to return Diag
Feb 20 2018, 2:28 PM