Re: [PATCH] D19536: [CodeGenObjCXX] Fix handling of blocks in lambda

2016-05-03 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 56090. ahatanak added a comment. Apply John's patch with a few modifications. I had to special case __block variables and remove the line creating a load from a reference to fix the failing regression tests. http://reviews.llvm.org/D19536 Files: lib/Co

Re: [PATCH] D18815: [ObjC] Enter a new evaluation context before calling BuildBlockForLambdaConversion.

2016-05-03 Thread Akira Hatanaka via cfe-commits
ahatanak added reviewers: manmanren, doug.gregor, rjmccall. ahatanak updated this revision to Diff 56092. ahatanak added a comment. Rebase and add reviewers. http://reviews.llvm.org/D18815 Files: lib/Sema/SemaExprCXX.cpp test/SemaObjCXX/block-cleanup.mm Index: test/SemaObjCXX/block-cleanup

r268527 - [ObjC] Enter a new evaluation context before calling

2016-05-04 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Wed May 4 13:07:20 2016 New Revision: 268527 URL: http://llvm.org/viewvc/llvm-project?rev=268527&view=rev Log: [ObjC] Enter a new evaluation context before calling BuildBlockForLambdaConversion. Previously, clang would build an incorrect AST for the following code: id tes

Re: [PATCH] D18815: [ObjC] Enter a new evaluation context before calling BuildBlockForLambdaConversion.

2016-05-04 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL268527: [ObjC] Enter a new evaluation context before calling (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D18815?vs=56092&id=56178#toc Repository: rL LLVM http://reviews.

Re: [PATCH] D19536: [CodeGenObjCXX] Fix handling of blocks in lambda

2016-05-04 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL268532: [CodeGenObjCXX] Fix handling of blocks in lambda. (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D19536?vs=56090&id=56183#toc Repository: rL LLVM http://reviews.llv

r268532 - [CodeGenObjCXX] Fix handling of blocks in lambda.

2016-05-04 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Wed May 4 13:40:33 2016 New Revision: 268532 URL: http://llvm.org/viewvc/llvm-project?rev=268532&view=rev Log: [CodeGenObjCXX] Fix handling of blocks in lambda. This fixes a crash that occurs when a block captures a reference that is captured by its enclosing lambda. rdar

r268589 - Do not add uwtable attribute by default for MachO targets.

2016-05-04 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Wed May 4 20:41:07 2016 New Revision: 268589 URL: http://llvm.org/viewvc/llvm-project?rev=268589&view=rev Log: Do not add uwtable attribute by default for MachO targets. r217178 changed clang to add function attribute uwtable by default on Win64, which caused the __eh_fram

[PATCH] D20045: [ObjC][CodeGen] Remove an assert that is no longer correct.

2016-05-06 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added reviewers: rjmccall, rsmith, manmanren. ahatanak added a subscriber: cfe-commits. The assert was committed in r183967. After r231508 made changes to promote constant temporaries to globals, the assert fires when a std::initializer_list is constructe

Re: [PATCH] D20045: [ObjC][CodeGen] Remove an assert that is no longer correct.

2016-05-12 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 57088. ahatanak added a comment. Add a comment explaining why it is OK to return early if the global variable has an initializer. http://reviews.llvm.org/D20045 Files: lib/CodeGen/CGExpr.cpp test/CodeGenObjCXX/arc-cxx11-init-list.mm Index: test/CodeG

Re: [PATCH] D20045: [ObjC][CodeGen] Remove an assert that is no longer correct.

2016-05-12 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. In http://reviews.llvm.org/D20045#425903, @manmanren wrote: > After r231508 made changes to promote constant temporaries to globals, the > assert fires when a std::initializer_list is constructed using Objective-C > string literals. > > --> Can you explain the code pat

Re: [PATCH] D20045: [ObjC][CodeGen] Remove an assert that is no longer correct.

2016-05-12 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 57111. ahatanak added a comment. Thanks, I updated the comment in the new patch. http://reviews.llvm.org/D20045 Files: lib/CodeGen/CGExpr.cpp test/CodeGenObjCXX/arc-cxx11-init-list.mm Index: test/CodeGenObjCXX/arc-cxx11-init-list.mm ==

r269385 - [ObjC][CodeGen] Remove an assert that is no longer correct.

2016-05-12 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Thu May 12 20:21:23 2016 New Revision: 269385 URL: http://llvm.org/viewvc/llvm-project?rev=269385&view=rev Log: [ObjC][CodeGen] Remove an assert that is no longer correct. clang asserts when compiling the following code because r231508 made changes to promote constant tempo

Re: [PATCH] D20045: [ObjC][CodeGen] Remove an assert that is no longer correct.

2016-05-12 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL269385: [ObjC][CodeGen] Remove an assert that is no longer correct. (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D20045?vs=57111&id=57125#toc Repository: rL LLVM http://r

[PATCH] D20334: [libcxx] Fix a bug in strstreambuf::overflow

2016-05-17 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added reviewers: mclow.lists, EricWF, howard.hinnant. ahatanak added a subscriber: cfe-commits. The end pointer should point to one past the end of the newly allocated buffer. Without this fix, asan reports an error when the following code is compiled and

[PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-18 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: rjmccall. ahatanak added a subscriber: cfe-commits. This patch fixes an assert that fires when there is a property that has attribute nonatomic and type _Atomic(_Bool). The assert fires when an i1 value is bitcast to i8 (which is the typ

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-18 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. Also, it seems that there are bugs in the way clang handles functions whose return types are atomic. Clang asserts when compiling the following test case: $ cat t1.c _Atomic _Bool b1; _Atomic _Bool foo1() { return b1; } $ clang -std=c11 -o - -S t1.c -emit

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-19 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. In http://reviews.llvm.org/D20407#433915, @rjmccall wrote: > _Atomic is functionally a type qualifier and should be removed in Sema when > computing the result type of the getter and the parameter type of the setter. > That is, if the user declares a property of type

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-20 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. I've managed to remove _Atomic from the types of the return and parameter of getter and setter functions in my new patch. I'm not sure how I should handle typedefs though. If I had the following typedef, typedef _Atomic(_Bool) AtomicBool, would it be OK to desugar th

[PATCH] D18618: [ObjC] Pop all cleanups created in CodeGenFunction::EmitObjCForCollectionStmt

2016-03-30 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: rjmccall. ahatanak added a subscriber: cfe-commits. This patch fixes a bug where EmitObjCForCollectionStmt doesn't pop cleanups for captures. For example, in the following for-in loop, a block which captures self is passed to foo1: for

Re: [PATCH] D18196: [CodeGen] Emit lifetime.end intrinsic after destructor call in landing pad

2016-03-30 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 52110. ahatanak added a comment. Add "REQUIRES: asserts" to test case to enable checking basic block names. http://reviews.llvm.org/D18196 Files: lib/CodeGen/CGCleanup.cpp lib/CodeGen/CGDecl.cpp lib/CodeGen/EHScopeStack.h test/CodeGenCXX/destructor

Re: [PATCH] D18618: [ObjC] Pop all cleanups created in CodeGenFunction::EmitObjCForCollectionStmt

2016-03-30 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. In CodeGenFunction::EmitARCRetainScalarExpr, if I move the declaration of "scope" above the call to enterFullExpression, the cleanup is popped before the loop body is entered right after the method returning the collection (foo1 in the test case) is called. if (const

Re: [PATCH] D18479: [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte alignment on Darwin

2016-03-30 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 52171. ahatanak added a comment. Thank you for the review, John. I've updated the patch as per your request. I defined virtual function getExnObjectAlignment instead of adding a ExnObjectAlignment field to TargetInfo since I found that getDefaultAlignForAt

r264998 - [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte

2016-03-30 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Thu Mar 31 01:36:07 2016 New Revision: 264998 URL: http://llvm.org/viewvc/llvm-project?rev=264998&view=rev Log: [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte alignment on Darwin. Itanium C++ ABI specifies that _Unwind_Exception should be double-wo

Re: [PATCH] D18479: [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte alignment on Darwin

2016-03-30 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL264998: [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D18479?vs=52171&id=52175#toc Repository: rL L

r265035 - Fix the comment for the function added in r264998.

2016-03-31 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Thu Mar 31 13:32:38 2016 New Revision: 265035 URL: http://llvm.org/viewvc/llvm-project?rev=265035&view=rev Log: Fix the comment for the function added in r264998. Modified: cfe/trunk/include/clang/Basic/TargetInfo.h Modified: cfe/trunk/include/clang/Basic/TargetInfo.h

Re: [PATCH] D18479: [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte alignment on Darwin

2016-03-31 Thread Akira Hatanaka via cfe-commits
ahatanak added inline comments. Comment at: cfe/trunk/include/clang/Basic/TargetInfo.h:426 @@ +425,3 @@ +/// we assume that alignment here. (It's generally 16 bytes, but +/// some targets overwrite it.) +return getDefaultAlignForAttributeAligned(); rj

r265197 - [CodeGen] Emit lifetime.end intrinsic after objects are destructed in

2016-04-01 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Fri Apr 1 17:58:55 2016 New Revision: 265197 URL: http://llvm.org/viewvc/llvm-project?rev=265197&view=rev Log: [CodeGen] Emit lifetime.end intrinsic after objects are destructed in landing pads. Previously, lifetime.end intrinsics were inserted only on normal control flows

Re: [PATCH] D18196: [CodeGen] Emit lifetime.end intrinsic after destructor call in landing pad

2016-04-01 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL265197: [CodeGen] Emit lifetime.end intrinsic after objects are destructed in (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D18196?vs=52110&id=52440#toc Repository: rL LLVM

r265257 - Fix test case committed in r265197.

2016-04-02 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Sat Apr 2 22:36:22 2016 New Revision: 265257 URL: http://llvm.org/viewvc/llvm-project?rev=265257&view=rev Log: Fix test case committed in r265197. The test was failing on some release build because the basic block names I was expecting weren't printed. Modified: cfe/t

Re: [PATCH] D18618: [ObjC] Pop all cleanups created in CodeGenFunction::EmitObjCForCollectionStmt

2016-04-04 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 52609. ahatanak added a comment. Changed the patch based on review comments. Added code to enter RunCleanupsScope before the condition is evaluated and force its cleanup before emitting LoopEnd. http://reviews.llvm.org/D18618 Files: lib/CodeGen/CGObjC.

Re: [PATCH] D18618: [ObjC] Pop all cleanups created in CodeGenFunction::EmitObjCForCollectionStmt

2016-04-04 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. Also, fixed the regex in test case so that the test passes on release builds too. http://reviews.llvm.org/D18618 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-co

[PATCH] D18815: [ObjC] Enter a new evaluation context before calling BuildBlockForLambdaConversion.

2016-04-05 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a subscriber: cfe-commits. Currently, when clang compiles the following code, id test() { return @{@"a": [](){}, @"b": [](){}}; } it builds an AST that is incorrect: ReturnStmt 0x10d080448 `-ExprWithCleanups 0x10d080428 |-cleanup Block 0x10d0

r266147 - [ObjC] Pop all cleanups created in EmitObjCForCollectionStmt before

2016-04-12 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Tue Apr 12 18:10:58 2016 New Revision: 266147 URL: http://llvm.org/viewvc/llvm-project?rev=266147&view=rev Log: [ObjC] Pop all cleanups created in EmitObjCForCollectionStmt before exiting the for-in loop. This commit fixes a bug where EmitObjCForCollectionStmt didn't pop cl

Re: [PATCH] D18618: [ObjC] Pop all cleanups created in CodeGenFunction::EmitObjCForCollectionStmt

2016-04-12 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL266147: [ObjC] Pop all cleanups created in EmitObjCForCollectionStmt before (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D18618?vs=52609&id=53489#toc Repository: rL LLVM

[PATCH] D19175: Fix for PR27015 (variable template initialized with a generic lambda expression)

2016-04-15 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: rsmith. ahatanak added a subscriber: cfe-commits. I'm sending a WIP patch which fixes PR27015 to get an early feedback from the community. This patch attempts to fix a crash which happens when a variable template is initialized with a g

r266645 - [Parser][ObjC] Make sure c++11 in-class initialization is done when the

2016-04-18 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Mon Apr 18 13:19:45 2016 New Revision: 266645 URL: http://llvm.org/viewvc/llvm-project?rev=266645&view=rev Log: [Parser][ObjC] Make sure c++11 in-class initialization is done when the constructor's definition is in an implementation block. Without this commit, ptr doesn't g

Re: [PATCH] D19175: Fix for PR27015 (variable template initialized with a generic lambda expression)

2016-04-18 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 54088. ahatanak added a comment. Address Richard's review comments and add a test case. The test case currently asserts when fn0 is instantiated. This doesn't happen if I give the template parameter a name. template auto fn0 = [] {}; instead of template

r266706 - Add a test case to check a member's default constructor is also run.

2016-04-18 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Mon Apr 18 21:21:47 2016 New Revision: 266706 URL: http://llvm.org/viewvc/llvm-project?rev=266706&view=rev Log: Add a test case to check a member's default constructor is also run. This is a follow-up to r266645. Modified: cfe/trunk/test/Parser/objc-default-ctor-init.m

Re: r266645 - [Parser][ObjC] Make sure c++11 in-class initialization is done when the

2016-04-18 Thread Akira Hatanaka via cfe-commits
Thanks for catching this, r266706. > On Apr 18, 2016, at 11:38 AM, Richard Smith wrote: > > On Mon, Apr 18, 2016 at 11:19 AM, Akira Hatanaka via cfe-commits > mailto:cfe-commits@lists.llvm.org>> wrote: > Author: ahatanak > Date: Mon Apr 18 13:19:45 2016 > New Revi

[PATCH] D19536: [CodeGenObjCXX] Fix handling of blocks in lambda

2016-04-26 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: rjmccall. ahatanak added a subscriber: cfe-commits. This fixes a crash that occurs when a block nested in a c++ lambda captures a reference that is captured by the enclosing lambda. rdar://problem/18586651 http://reviews.llvm.org/D19536

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-23 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 58144. ahatanak added a comment. Rewrote the patch based on John's review comment. Remove typedefs and _Atomic from the return and parameter types of getters and setters of objective-c properties. http://reviews.llvm.org/D20407 Files: include/clang/AST

Re: [PATCH] D20334: [libcxx] Fix a bug in strstreambuf::overflow

2016-05-24 Thread Akira Hatanaka via cfe-commits
ping. > On May 17, 2016, at 12:20 PM, Akira Hatanaka via cfe-commits > wrote: > > ahatanak created this revision. > ahatanak added reviewers: mclow.lists, EricWF, howard.hinnant. > ahatanak added a subscriber: cfe-commits. > > The end pointer should point to one p

Re: [PATCH] D20334: [libcxx] Fix a bug in strstreambuf::overflow

2016-05-24 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. My understanding is that typically std::ends is explicitly appended to null-terminate the stream buffer. The test case in the example does that. http://en.cppreference.com/w/cpp/io/ostrstream/str http://reviews.llvm.org/D20334 __

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-25 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 58495. ahatanak added a comment. Address John's review comments. http://reviews.llvm.org/D20407 Files: include/clang/AST/Type.h lib/AST/Type.cpp lib/CodeGen/CGObjC.cpp lib/Sema/SemaObjCProperty.cpp test/CodeGenObjC/property-atomic-bool.m test/S

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-25 Thread Akira Hatanaka via cfe-commits
ahatanak marked 7 inline comments as done. Comment at: lib/AST/Type.cpp:1282 @@ -1277,1 +1281,3 @@ +} + Optional> Type::getObjCSubstitutions( I added getTypePtr() because the code didn't compile. Comment at: lib/CodeGen/CGObjC.cpp:901 @@ -903,1

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-25 Thread Akira Hatanaka via cfe-commits
ahatanak marked 2 inline comments as done. ahatanak added a comment. I reverted the changes I made in SemaDeclObjC.cpp as they weren't needed to pass the regression tests I added. clang still asserts when it compiles an objective-c method returning _Atomic and those changes will become necessary

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-25 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 58512. ahatanak added a comment. Rename variables. http://reviews.llvm.org/D20407 Files: include/clang/AST/Type.h lib/AST/Type.cpp lib/CodeGen/CGObjC.cpp lib/Sema/SemaObjCProperty.cpp test/CodeGenObjC/property-atomic-bool.m test/SemaObjC/proper

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-25 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. In http://reviews.llvm.org/D20407#439951, @rjmccall wrote: > The C standard is poorly-written in this area, but I think it would be > reasonable for CheckFunctionReturnType to just silently remove _Atomic. (You > will not be able to just re-use your new method there;

Re: [PATCH] D20334: [libcxx] Fix a bug in strstreambuf::overflow

2016-05-25 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. In http://reviews.llvm.org/D20334#439248, @bcraig wrote: > ASAN is complaining about an excessively large read. If the problem was in > overflow, I would expect ASAN to complain about an out-of-bounds write > instead. According to the example shown in the link below

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-25 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 58544. ahatanak added a comment. Thanks for the review. I've removed parameter ASTContext that was unused. http://reviews.llvm.org/D20407 Files: include/clang/AST/Type.h lib/AST/Type.cpp lib/CodeGen/CGObjC.cpp lib/Sema/SemaObjCProperty.cpp test/C

Re: [PATCH] D20407: [CodeGen][ObjC] zero-ext an i1 value to i8

2016-05-25 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL270808: [ObjC] Remove _Atomic from return type and parameter type of (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D20407?vs=58544&id=58549#toc Repository: rL LLVM http://

r270808 - [ObjC] Remove _Atomic from return type and parameter type of

2016-05-25 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Wed May 25 19:37:30 2016 New Revision: 270808 URL: http://llvm.org/viewvc/llvm-project?rev=270808&view=rev Log: [ObjC] Remove _Atomic from return type and parameter type of objective-c properties. This fixes an assert in CodeGen that fires when the getter and setter functio

r270817 - Don't feed standard error to FileCheck.

2016-05-25 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Wed May 25 21:32:10 2016 New Revision: 270817 URL: http://llvm.org/viewvc/llvm-project?rev=270817&view=rev Log: Don't feed standard error to FileCheck. This is an attempt to fix the buildbot that started failing after r270808. http://lab.llvm.org:8011/builders/sanitizer-x8

Re: [PATCH] D20334: [libcxx] Fix a bug in strstreambuf::overflow

2016-05-26 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 58740. ahatanak added a comment. Remove unused variable and add test case. http://reviews.llvm.org/D20334 Files: src/strstream.cpp test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/overflow.pass.cpp Index: test/std/depr/d

Re: [PATCH] D20334: [libcxx] Fix a bug in strstreambuf::overflow

2016-05-26 Thread Akira Hatanaka via cfe-commits
ahatanak marked an inline comment as done. ahatanak added a comment. I spent some time debugging the code and here is what I found. The initial buffer size is 0 when strstreambuf is constructed and all six pointers are null initially. When the first character is pushed, strstreambuf::overflow a

Re: [PATCH] D20334: [libcxx] Fix a bug in strstreambuf::overflow

2016-05-27 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. Thanks! Marshall, I've filed a PR for this bug: https://llvm.org/bugs/show_bug.cgi?id=27915 http://reviews.llvm.org/D20334 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listi

Re: [PATCH] D16948: [libcxx] Filesystem TS -- Complete

2016-05-31 Thread Akira Hatanaka via cfe-commits
ahatanak added a subscriber: ahatanak. Comment at: test/std/utilities/meta/meta.rel/is_nothrow_callable.pass.cpp:57 @@ -56,3 +56,3 @@ struct Dummy { void foo() noexcept {} static void bar() noexcept {} }; -#if !defined(__cpp_noexcept_function_type) +#if !defined(__cpp_noexcep

[PATCH] D21099: [Sema] Teach -Wcast-align to look at the aligned attribute of the declared variables

2016-06-07 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a subscriber: cfe-commits. Sema::CheckCastAlign currently ignores the aligned attribute attached to the declared variables, which causes clang to issue spurious warnings. This patch fixes the bug. http://reviews.llvm.org/D21099 Files: lib/Sema/S

[PATCH] D21104: [CodeGen][ObjC] Block captures should inherit the type of the captured field in the enclosing lambda or block

2016-06-07 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: rjmccall. ahatanak added a subscriber: cfe-commits. This patch fixes a bug in code-gen where it uses the type of the declared variable rather than the type of the capture of the enclosing lambda or block for the block capture. For exampl

[PATCH] D21187: Allow use of lambda expressions in array bounds

2016-06-09 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a subscriber: cfe-commits. clang currently errors out when a lambda expression is used to compute the size of an array even though clang supports variable-length arrays as a C99 extension. For example, $ cat vla1.cpp ``` int foo3(); struct S1 {

Re: [PATCH] D21187: Allow use of lambda expressions in array bounds

2016-06-15 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. Sorry for my late reply. Comment at: lib/Sema/SemaExpr.cpp:12825 @@ -12824,1 +12824,3 @@ + // BlockContext. + } else if (!Rec.IsArrayBound) { // C++1y [expr.const]p2: rsmith wrote: > This isn't correct; you still need

[PATCH] D21453: Add support for attribute "overallocated"

2016-06-16 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added reviewers: rsmith, george.burgess.iv, aaron.ballman. ahatanak added subscribers: cfe-commits, dexonsmith, hfinkel. This patch adds support for attribute "overallocated", which will be used to indicate a union or struct is over-allocated. This is need

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-06-17 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 61145. ahatanak added a comment. Fix a bug in tryEvaluateBuiltinObjectSize. If the pointer passed to __builtin_object_size doesn't point to an array, it should be able to compute the exact size of the subobject the pointer points to. Therefore, it should be

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-06-17 Thread Akira Hatanaka via cfe-commits
ahatanak added inline comments. Comment at: include/clang/Basic/AttrDocs.td:2073-2079 @@ +2072,9 @@ + let Content = [{ +Use ``overallocated`` to indicate a struct or union is over-allocated. For example, + +.. code-block:: c++ + +struct S { + char a[4], char b[4]; +} __attribut

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-06-23 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 61743. ahatanak added a comment. Address review comments and change the wording in AttrDocs.td to explain what the attribute means and how it is used. Also, fixed the code in VisitMemberExpr to set LValue::OverAllocated before the base class of the member e

Re: [PATCH] D14471: [AArch64] Fix a crash in driver

2016-06-27 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. Sorry for not replying for a long time. I'll get back to this soon. http://reviews.llvm.org/D14471 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-06-28 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. I think you are right. There are other places that need to be fixed to properly support over-allocated structures. I'll see if I can come up with a patch that treats the over-allocated array as flexible array member. http://reviews.llvm.org/D21453 _

[libcxx] r274132 - [libcxx] Fix a bug in strstreambuf::overflow.

2016-06-29 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Wed Jun 29 10:26:13 2016 New Revision: 274132 URL: http://llvm.org/viewvc/llvm-project?rev=274132&view=rev Log: [libcxx] Fix a bug in strstreambuf::overflow. The end pointer should point to one past the end of the newly allocated buffer. rdar://problem/24265174 Differenti

Re: [PATCH] D20334: [libcxx] Fix a bug in strstreambuf::overflow

2016-06-29 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL274132: [libcxx] Fix a bug in strstreambuf::overflow. (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D20334?vs=58740&id=62225#toc Repository: rL LLVM http://reviews.llvm.or

r274190 - Use the same type for adjacent bit field members.

2016-06-29 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Wed Jun 29 19:07:17 2016 New Revision: 274190 URL: http://llvm.org/viewvc/llvm-project?rev=274190&view=rev Log: Use the same type for adjacent bit field members. MSVC doesn't pack the bit field members if different types are used. This came up in a patch review. http://lis

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-07-01 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 62560. ahatanak added a comment. The new patch defines a new attribute "flexible_array", which gets attached to the last array member of a struct. I made changes to clang to treat arrays marked "flexible_array" as C99's flexible array members where it made

Re: [PATCH] D15075: No error for conflict between inputs\outputs and clobber list

2016-07-01 Thread Akira Hatanaka via cfe-commits
ahatanak added inline comments. Comment at: include/clang/Basic/TargetInfo.h:585 @@ +584,3 @@ + StringRef + TargetInfo::getNormalizedGCCRegisterName(StringRef Name, + bool ReturnCannonical = false) const; This gives bui

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-07-08 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 63299. ahatanak added a comment. Address review comments. http://reviews.llvm.org/D21453 Files: include/clang/AST/Decl.h include/clang/Basic/Attr.td include/clang/Basic/AttrDocs.td include/clang/Basic/DiagnosticSemaKinds.td include/clang/Sema/Att

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-07-08 Thread Akira Hatanaka via cfe-commits
ahatanak marked 7 inline comments as done. Comment at: include/clang/AST/Decl.h:3249 @@ -3248,1 +3248,3 @@ + /// This is true if this struct ends with an array marked 'flexible_array'. + bool HasFlexibleArrayAttr : 1; Probably it can be looked up although it w

Re: [PATCH] D21515: Update clang for D21514. NFC

2016-07-08 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. Assuming http://reviews.llvm.org/D21514 will get accepted, this looks find to me. http://reviews.llvm.org/D21515 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-co

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-07-11 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 63596. ahatanak added a comment. Change diagnostic messages. http://reviews.llvm.org/D21453 Files: include/clang/AST/Decl.h include/clang/Basic/Attr.td include/clang/Basic/AttrDocs.td include/clang/Basic/DiagnosticSemaKinds.td include/clang/Sema/

Re: [PATCH] D21453: Add support for attribute "overallocated"

2016-07-11 Thread Akira Hatanaka via cfe-commits
ahatanak added inline comments. Comment at: include/clang/Basic/DiagnosticSemaKinds.td:2170 @@ +2169,3 @@ + "'flexible_array' attribute only applies to %select{" + "the last member of a struct|members of structs or classes|" + "fixed sized array members|array members that have

[PATCH] D22391: [Sema] Add warning for implicitly casting a null constant to a non null pointer type

2016-07-14 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: doug.gregor. ahatanak added a subscriber: cfe-commits. This patch makes clang issue a warning when a null constant is used in a context where a non null expression is expected. For example: ``` int * _Nonnull p0 = 0; // warning expected

[PATCH] D22392: [Sema] Fix an invalid nullability warning for binary conditional operators

2016-07-14 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: doug.gregor. ahatanak added a subscriber: cfe-commits. Currently clang issues a warning when the following code using a shorthand form of the conditional operator is compiled: $ cat test1.c ``` void foo() { int * _Nullable p0; int *

Re: [PATCH] D22392: [Sema] Fix an invalid nullability warning for binary conditional operators

2016-07-14 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 64077. ahatanak added a comment. Remove unused variable. https://reviews.llvm.org/D22392 Files: lib/Sema/SemaExpr.cpp test/Sema/nullability.c Index: test/Sema/nullability.c === --- test/S

Re: [PATCH] D22392: [Sema] Fix an invalid nullability warning for binary conditional operators

2016-07-15 Thread Akira Hatanaka via cfe-commits
ahatanak added inline comments. Comment at: lib/Sema/SemaExpr.cpp:7007 @@ +7006,3 @@ +/// expression. +static QualType modifyNullability(QualType ResTy, Expr *RHSExpr, + ASTContext &Ctx) { doug.gregor wrote: > This name could be im

Re: [PATCH] D22392: [Sema] Fix an invalid nullability warning for binary conditional operators

2016-07-15 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. I'm thinking about taking the following steps to compute the nullability of ternary operators. The first step is to compute the "merged" nullability of the LHS and RHS. For normal ternary operators (not the shorthand version): - If both LHS and RHS have the same nulla

Re: [PATCH] D21104: [CodeGen][ObjC] Block captures should inherit the type of the captured field in the enclosing lambda or block

2016-07-15 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 64199. ahatanak added a comment. Rebase. https://reviews.llvm.org/D21104 Files: lib/CodeGen/CGBlocks.cpp lib/CodeGen/CGBlocks.h test/CodeGenObjCXX/lambda-expressions.mm Index: test/CodeGenObjCXX/lambda-expressions.mm

Re: [PATCH] D15075: No error for conflict between inputs\outputs and clobber list

2016-02-26 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. > After going a bit through the log, I think that there is no reason for clang > to not detect it, probably the check was just forgotten. > > This patch is the check. Which part of your patch (in SemaStmtAsm.cpp) is supposed to catch that? I applied this patch and

Re: [PATCH] D15599: [CodeGen] Fix a crash that occurs when attribute "naked" is attached to a c++ member function

2016-03-15 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 50759. ahatanak added a comment. Address review comments. - Rewrite cleanupNakedFunction. - Fix test case attr-naked.cpp. Check that the thunk function doesn't get removed when the virtual function is marked "naked". http://reviews.llvm.org/D15599 Files:

Re: [PATCH] D15599: [CodeGen] Fix a crash that occurs when attribute "naked" is attached to a c++ member function

2016-03-15 Thread Akira Hatanaka via cfe-commits
ahatanak marked 2 inline comments as done. Comment at: test/CodeGen/attr-naked.c:20 @@ -19,3 +19,3 @@ __attribute((naked)) void t3(int x) { -// CHECK: define void @t3(i32) +// CHECK: define void @t3(i32 %x) // CHECK-NOT: alloca This is a side effect of not exiti

[PATCH] D18196: [CodeGen] Emit lifetime.end intrinsic after destructor call in landing pad

2016-03-15 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added reviewers: rnk, rjmccall. ahatanak added a subscriber: cfe-commits. This patch fixes a bug in CodeGen where lifetime.end intrinsics were not being inserted after destructor calls in landing pad blocks, which prevented StackColoring from merging stac

[PATCH] D18268: [Objective-c] Fix a crash in WeakObjectProfileTy::getBaseInfo

2016-03-18 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: jordan_rose. ahatanak added a subscriber: cfe-commits. The crash occurs in WeakObjectProfileTy::getBaseInfo when getBase() is called on an ObjCPropertyRefExpr object whose receiver is an interface. This patch fixes the crash by checking

Re: [PATCH] D18268: [Objective-c] Fix a crash in WeakObjectProfileTy::getBaseInfo

2016-03-19 Thread Akira Hatanaka via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL263818: [Objective-c] Fix a crash in WeakObjectProfileTy::getBaseInfo. (authored by ahatanak). Changed prior to commit: http://reviews.llvm.org/D18268?vs=51025&id=51056#toc Repository: rL LLVM http:

Re: [PATCH] D18268: [Objective-c] Fix a crash in WeakObjectProfileTy::getBaseInfo

2016-03-19 Thread Akira Hatanaka via cfe-commits
Thanks Jordan. I’ve committed the patch in r263818. I didn’t understand your comment on WeakObjectProfileTy’s table (I’m assuming you are talking about the table in ScopeInfo.h:183). It looks like the entry MyClass.prop in the table already covers the case this patch fixed (in the test case I a

r263818 - [Objective-c] Fix a crash in WeakObjectProfileTy::getBaseInfo.

2016-03-19 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Fri Mar 18 14:03:50 2016 New Revision: 263818 URL: http://llvm.org/viewvc/llvm-project?rev=263818&view=rev Log: [Objective-c] Fix a crash in WeakObjectProfileTy::getBaseInfo. The crash occurs in WeakObjectProfileTy::getBaseInfo when getBase() is called on an ObjCPropertyRef

Re: [PATCH] D18196: [CodeGen] Emit lifetime.end intrinsic after destructor call in landing pad

2016-03-19 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. I can add another RUN line to test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp that is identical to the existing RUN line except that it has "-O3 -disable-llvm-optzns". I confirmed that the test still passes without any changes to the test itself. Is that what you are lo

Re: [PATCH] D18268: [Objective-c] Fix a crash in WeakObjectProfileTy::getBaseInfo

2016-03-21 Thread Akira Hatanaka via cfe-commits
Jordan,Does the attached patch look OK?On Mar 18, 2016, at 1:19 PM, Jordan Rose wrote:No, that case worked already. The case you fixed is the one where Base is 'foo' and Property is 'prop'…and actually, thinking more about it, this should not be considered "exact". *sigh* Th

r264025 - [Objective-c] Do not set IsExact to true when the receiver is a class.

2016-03-21 Thread Akira Hatanaka via cfe-commits
Author: ahatanak Date: Tue Mar 22 00:00:21 2016 New Revision: 264025 URL: http://llvm.org/viewvc/llvm-project?rev=264025&view=rev Log: [Objective-c] Do not set IsExact to true when the receiver is a class. IsExact shouldn't be set to true in WeakObjectProfileTy::getBaseInfo when the receiver is a

Re: [PATCH] D18268: [Objective-c] Fix a crash in WeakObjectProfileTy::getBaseInfo

2016-03-21 Thread Akira Hatanaka via cfe-commits
Thanks Jordan. r264025. > On Mar 21, 2016, at 1:08 PM, Jordan Rose wrote: > > Yes, that looks good. For bonus points, add a similar test using the new > property syntax > > @property (class) NSBundle *foo2; > > instead of the method. (I expect that version to behave nearly the same, > includ

Re: [PATCH] D18196: [CodeGen] Emit lifetime.end intrinsic after destructor call in landing pad

2016-03-22 Thread Akira Hatanaka via cfe-commits
ahatanak updated this revision to Diff 51376. ahatanak added a comment. Added a test in test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp to check expected patterns are emitted. http://reviews.llvm.org/D18196 Files: lib/CodeGen/CGCleanup.cpp lib/CodeGen/CGDecl.cpp lib/CodeGen/EHScopeStack.h

Re: [PATCH] D18196: [CodeGen] Emit lifetime.end intrinsic after destructor call in landing pad

2016-03-22 Thread Akira Hatanaka via cfe-commits
ahatanak added a comment. In http://reviews.llvm.org/D18196#375997, @rjmccall wrote: > You should also check that any back-end peepholes we have in place (null type > infos to signify a call-terminate landingpad?) aren't disturbed by the > lifetime intrinsics. I looked at the back-end passes

[PATCH] D18479: [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte alignment on Darwin

2016-03-25 Thread Akira Hatanaka via cfe-commits
ahatanak created this revision. ahatanak added a reviewer: rjmccall. ahatanak added a subscriber: cfe-commits. r246985 made changes to give a higher alignment for exception objects on the grounds that Itanium says _Unwind_Exception should be "double-word" aligned and the structure is normally de

Re: [PATCH] D18479: [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte alignment on Darwin

2016-03-25 Thread Akira Hatanaka via cfe-commits
> On Mar 25, 2016, at 2:06 PM, David Majnemer via cfe-commits > wrote: > > > > On Fri, Mar 25, 2016 at 12:57 PM, Akira Hatanaka via cfe-commits > mailto:cfe-commits@lists.llvm.org>> wrote: > ahatanak created this revision. > ahatanak added a reviewer: rjmcca

Re: [PATCH] D18479: [CodeGenCXX] Fix ItaniumCXXABI::getAlignmentOfExnObject to return 8-byte alignment on Darwin

2016-03-28 Thread Akira Hatanaka via cfe-commits
> On Mar 25, 2016, at 2:23 PM, Akira Hatanaka via cfe-commits > wrote: > >> >> On Mar 25, 2016, at 2:06 PM, David Majnemer via cfe-commits >> mailto:cfe-commits@lists.llvm.org>> wrote: >> >> >> >> On Fri, Mar 25, 2016 at 12:57

<    3   4   5   6   7   8   9   10   11   >