Re: r279076 - [libclang] Add clang_getAllSkippedRanges function

2016-08-18 Thread H.J. Lu via cfe-commits
On Thu, Aug 18, 2016 at 8:43 AM, Cameron Desrochers via cfe-commits wrote: > Author: cameron314 > Date: Thu Aug 18 10:43:55 2016 > New Revision: 279076 > > URL: http://llvm.org/viewvc/llvm-project?rev=279076&view=rev > Log: > [libclang] Add clang_getAllSkippedRanges function > > This complements t

Re: [PATCH] D12087: always_inline codegen rewrite

2015-09-11 Thread H.J. Lu via cfe-commits
On Fri, Sep 11, 2015 at 1:31 PM, Evgeniy Stepanov via cfe-commits wrote: > eugenis closed this revision. > eugenis added a comment. > > r247465, thanks for the review! > On Fedora 22/x86-64, I got FAIL: Clang :: CodeGen/always_inline.c (3049 of 26132) TEST 'Clang :: CodeGen/

Re: [PATCH] D12087: always_inline codegen rewrite

2015-09-11 Thread H.J. Lu via cfe-commits
On Fri, Sep 11, 2015 at 4:45 PM, Evgenii Stepanov wrote: > Does it say that there is no entry basic block? I.e. the output > apparently looks like > > define void @h() #1 { > store void ()* @f1, void ()** @p, align 8 > > Could you confirm it? Never seen this behavior. > > I'm going to revert the

Re: r245344 - [sanitizer] Add -lutil to static runtime link flags.

2015-08-19 Thread H.J. Lu via cfe-commits
On Tue, Aug 18, 2015 at 1:36 PM, Evgeniy Stepanov via cfe-commits wrote: > Author: eugenis > Date: Tue Aug 18 15:36:11 2015 > New Revision: 245344 > > URL: http://llvm.org/viewvc/llvm-project?rev=245344&view=rev > Log: > [sanitizer] Add -lutil to static runtime link flags. > > This is needed to pr

Re: [PATCH] D22045: [X86] Support of no_caller_saved_registers attribute (Clang part)

2016-07-25 Thread H.J Lu via cfe-commits
hjl.tools added a comment. no_caller_saved_registers attribute can be used with any calling conventions. https://reviews.llvm.org/D22045 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commi

Re: [PATCH] D22045: [X86] Support of no_caller_saved_registers attribute (Clang part)

2016-08-08 Thread H.J Lu via cfe-commits
hjl.tools added a comment. In https://reviews.llvm.org/D22045#506996, @joerg wrote: > For what it is worth, this certainly seems to be misnamed. By nature, if it > doesn't preserve at least the stack pointer, there is no way to recover on > return, right? This is the best name we came up with

Re: [PATCH] D22045: [X86] Support of no_caller_saved_registers attribute (Clang part)

2016-08-08 Thread H.J Lu via cfe-commits
hjl.tools added a comment. In https://reviews.llvm.org/D22045#508648, @aaron.ballman wrote: > In https://reviews.llvm.org/D22045#508644, @hjl.tools wrote: > > > In https://reviews.llvm.org/D22045#506996, @joerg wrote: > > > > > For what it is worth, this certainly seems to be misnamed. By nature,

[PATCH] D16779: Fix attribute((mode([word|unwind_word]))) for x32

2016-02-01 Thread H.J Lu via cfe-commits
hjl.tools created this revision. hjl.tools added reviewers: rnk, rafael. hjl.tools added a subscriber: cfe-commits. ``` typedef unsigned int gcc_word __attribute__((mode(word))); ``` and ``` typedef unsigned int gcc_unwind_word __attribute__((mode(unwind_word))); ``` define the largest unsigned i

Re: [PATCH] D16779: Fix attribute((mode([word|unwind_word]))) for x32

2016-02-01 Thread H.J Lu via cfe-commits
hjl.tools added a comment. Yes, please. Thanks. http://reviews.llvm.org/D16779 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Re: [PATCH] D16808: [MCU] PR26438: Fix assertion failure on function returning an empty struct or union

2016-02-02 Thread H.J Lu via cfe-commits
hjl.tools added a subscriber: hjl.tools. hjl.tools added a comment. Why should empty structs and unions) be return in memory? I don't remember I called for it in MCU psABI. http://reviews.llvm.org/D16808 ___ cfe-commits mailing list cfe-commits@list

Re: [PATCH] D16808: [MCU] PR26438: Fix assertion failure on function returning an empty struct or union

2016-02-03 Thread H.J Lu via cfe-commits
hjl.tools added a comment. I am planning to update i386, x86-64 and IA MCU psABIs to address how to pass and return C++ empty class after resolving: https://llvm.org/bugs/show_bug.cgi?id=26337 by updating C++ ABI to explicitly pass and return C++ empty class like C empty structure. http://revi

Re: [PATCH] D16808: [MCU] PR26438: Fix assertion failure on function returning an empty struct or union

2016-02-04 Thread H.J Lu via cfe-commits
hjl.tools added a comment. Empty struct/union should be passed and returned as void for all IA psABs. http://reviews.llvm.org/D16808 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-07 Thread H.J. Lu via cfe-commits
Empty struct value is passed differently in C and C++ on Intel386 and x86-64. Different compilers use different calling conventions on the same platform: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336 The same compiler behaves different on different platforms: https://llvm.org/bugs/show_bug.

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-07 Thread H.J. Lu via cfe-commits
On Sun, Feb 7, 2016 at 11:31 AM, Florian Weimer wrote: > * H. J. Lu: > >> I am proposing to update Intel386, x86-64 and IA MCU psABIs to specify >> how to pass/return empty struct: >> >> 1. "collection". A collection is a structure, union or C++ class. >> 2. "empty collection". An empty collecti

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-07 Thread H.J. Lu via cfe-commits
On Sun, Feb 7, 2016 at 11:36 AM, H.J. Lu wrote: > On Sun, Feb 7, 2016 at 11:31 AM, Florian Weimer wrote: >> * H. J. Lu: >> >>> I am proposing to update Intel386, x86-64 and IA MCU psABIs to specify >>> how to pass/return empty struct: >>> >>> 1. "collection". A collection is a structure, union o

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-07 Thread H.J. Lu via cfe-commits
On Sun, Feb 7, 2016 at 12:08 PM, Florian Weimer wrote: > * H. J. Lu: > >>> Any syntactical array argument (at the C level) is should be passed as >>> a pointer. The language appears to change that. >> >> I didn't use aggregate so that array is excluded here. >> >>> For 2., static members and non-

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-07 Thread H.J. Lu via cfe-commits
On Sun, Feb 7, 2016 at 12:48 PM, Florian Weimer wrote: > * H. J. Lu: > >>> I tested GCC 5.3.1 and Clang 3.5.0. >>> >>> GCC Clang >>> s0 non-emptynon-empty >>> s1 non-emptyempty >>> s2 non-emptyempty >>> s3 emptyempty >>> s4 emptyempty >>> s5 no

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Sun, Feb 7, 2016 at 12:52 PM, H.J. Lu wrote: > On Sun, Feb 7, 2016 at 12:48 PM, Florian Weimer wrote: >> * H. J. Lu: >> I tested GCC 5.3.1 and Clang 3.5.0. GCC Clang s0 non-emptynon-empty s1 non-emptyempty s2 non-emptyempty s3

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 7:02 AM, Jonathan Wakely wrote: > On 8 February 2016 at 13:54, H.J. Lu wrote: >> On Sun, Feb 7, 2016 at 12:52 PM, H.J. Lu wrote: >> >> The standard-layout POD is well defined: >> >> https://en.wikipedia.org/wiki/C%2B%2B11#Modification_to_the_definition_of_plain_old_data >>

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 7:59 AM, Jonathan Wakely wrote: > On 8 February 2016 at 15:42, H.J. Lu wrote: >> On Mon, Feb 8, 2016 at 7:02 AM, Jonathan Wakely >> wrote: >>> On 8 February 2016 at 13:54, H.J. Lu wrote: On Sun, Feb 7, 2016 at 12:52 PM, H.J. Lu wrote: The standard-layout

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 8:15 AM, Jonathan Wakely wrote: > On 8 February 2016 at 16:05, H.J. Lu wrote: >> My understanding is >> >> A type that is standard-layout means that it orders and packs its >> members in a way that is compatible with C. >> >> What is the corresponding compatible type in C? >

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 7:59 AM, Jonathan Wakely wrote: >>> A type is a standard-layout type, or it isn't. >> >> How about "An empty record is standard-layout Plain Old Data (POD) >> type and ..."? > > That's redundant, all POD types are standard-layout types. > Apparently, not all standard-layout

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 10:30 AM, Jonathan Wakely wrote: > On 8 February 2016 at 18:26, Jonathan Wakely wrote: >> On 8 February 2016 at 17:58, H.J. Lu wrote: >>> On Mon, Feb 8, 2016 at 7:59 AM, Jonathan Wakely >>> wrote: >> A type is a standard-layout type, or it isn't. > > How about

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 10:46 AM, Jonathan Wakely wrote: > On 8 February 2016 at 18:31, H.J. Lu wrote: >> On Mon, Feb 8, 2016 at 10:30 AM, Jonathan Wakely >> wrote: >>> On 8 February 2016 at 18:26, Jonathan Wakely wrote: On 8 February 2016 at 17:58, H.J. Lu wrote: > On Mon, Feb 8, 2016

Linux-abi group

2016-02-08 Thread H.J. Lu via cfe-commits
Hi, I created a mailing list to discuss Linux specific,.processor independent modification and extension of generic System V Application Binary Interface: https://groups.google.com/d/forum/linux-abi I will start to document existing Linux extensions, like STT_GNU_IFUNC. I will propose some new e

Re: Linux-abi group

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 11:32 AM, Florian Weimer wrote: > * H. J. Lu: > >> I created a mailing list to discuss Linux specific,.processor independent >> modification and extension of generic System V Application Binary Interface: >> >> https://groups.google.com/d/forum/linux-abi >> >> I will start t

Re: Linux-abi group

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 11:33 AM, Szabolcs Nagy wrote: > * H.J. Lu [2016-02-08 11:24:53 -0800]: >> I created a mailing list to discuss Linux specific,.processor independent >> modification and extension of generic System V Application Binary Interface: >> >> https://groups.google.com/d/forum/linux

Re: Linux-abi group

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 11:44 AM, Florian Weimer wrote: > * H. J. Lu: > >> On Mon, Feb 8, 2016 at 11:32 AM, Florian Weimer wrote: >>> * H. J. Lu: >>> I created a mailing list to discuss Linux specific,.processor independent modification and extension of generic System V Application Binar

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 11:33 AM, Jonathan Wakely wrote: > On 8 February 2016 at 19:23, Richard Smith wrote: >> "POD for the purpose of layout" is defined in the Itanium C++ ABI here: >> >> http://mentorembedded.github.io/cxx-abi/abi.html#definitions > > Thanks. So there's no problem using "POD f

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 12:38 PM, Richard Smith wrote: > On Mon, Feb 8, 2016 at 12:05 PM, H.J. Lu wrote: >> >> On Mon, Feb 8, 2016 at 11:33 AM, Jonathan Wakely >> wrote: >> > On 8 February 2016 at 19:23, Richard Smith wrote: >> >> "POD for the purpose of layout" is defined in the Itanium C++ ABI

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 2:35 PM, Richard Smith wrote: > On Mon, Feb 8, 2016 at 1:40 PM, H.J. Lu wrote: >> >> On Mon, Feb 8, 2016 at 12:38 PM, Richard Smith wrote: >> > On Mon, Feb 8, 2016 at 12:05 PM, H.J. Lu wrote: >> >> >> >> On Mon, Feb 8, 2016 at 11:33 AM, Jonathan Wakely >> >> wrote: >> >>

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 2:42 PM, Richard Smith wrote: > Do we really need an 'empty type' special case? > > The x86_64 psABI already seems clear that empty types with size <= 16 > are not passed at all. Following the algorithm in section 3.2.3, each > eightbyte is classified as NO_CLASS, and thus i

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 2:51 PM, Richard Smith wrote: > On Mon, Feb 8, 2016 at 2:46 PM, H.J. Lu wrote: >> On Mon, Feb 8, 2016 at 2:35 PM, Richard Smith wrote: >>> On Mon, Feb 8, 2016 at 1:40 PM, H.J. Lu wrote: On Mon, Feb 8, 2016 at 12:38 PM, Richard Smith wrote: > On Mon,

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 2:58 PM, Richard Smith wrote: > On Mon, Feb 8, 2016 at 2:54 PM, H.J. Lu wrote: >> On Mon, Feb 8, 2016 at 2:51 PM, Richard Smith wrote: >>> On Mon, Feb 8, 2016 at 2:46 PM, H.J. Lu wrote: On Mon, Feb 8, 2016 at 2:35 PM, Richard Smith wrote: > On Mon, Feb 8,

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 2:55 PM, Richard Smith wrote: > On Mon, Feb 8, 2016 at 2:49 PM, H.J. Lu wrote: >> On Mon, Feb 8, 2016 at 2:42 PM, Richard Smith wrote: >>> Do we really need an 'empty type' special case? >>> >>> The x86_64 psABI already seems clear that empty types with size <= 16 >>> are

Re: Linux-abi group

2016-02-08 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 3:08 PM, Joseph Myers wrote: > On Mon, 8 Feb 2016, H.J. Lu wrote: > >> >> I was referring to program properties: >> >> >> >> https://groups.google.com/forum/#!topic/generic-abi/fyIXttIsYc8 >> > >> > This looks more like an ELF topic to me, not really ABI. >> > >> > Please di

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-09 Thread H.J. Lu via cfe-commits
On Mon, Feb 8, 2016 at 3:28 PM, Richard Smith wrote: > On Mon, Feb 8, 2016 at 3:01 PM, H.J. Lu wrote: >> On Mon, Feb 8, 2016 at 2:58 PM, Richard Smith wrote: >>> On Mon, Feb 8, 2016 at 2:54 PM, H.J. Lu wrote: On Mon, Feb 8, 2016 at 2:51 PM, Richard Smith wrote: > On Mon, Feb 8,

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-09 Thread H.J. Lu via cfe-commits
On Tue, Feb 9, 2016 at 6:45 AM, H.J. Lu wrote: > On Mon, Feb 8, 2016 at 3:28 PM, Richard Smith wrote: >> On Mon, Feb 8, 2016 at 3:01 PM, H.J. Lu wrote: >>> On Mon, Feb 8, 2016 at 2:58 PM, Richard Smith wrote: On Mon, Feb 8, 2016 at 2:54 PM, H.J. Lu wrote: > On Mon, Feb 8, 2016 at 2:51

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-11 Thread H.J. Lu via cfe-commits
On Thu, Feb 11, 2016 at 2:47 AM, Matthijs van Duin wrote: > On 8 February 2016 at 22:40, H.J. Lu wrote: >> "empty type". An empty type is either an array of empty types or a >> class type where every member is of empty type. > > Note that the term "empty type" is commonly used in type theory to

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-11 Thread H.J. Lu via cfe-commits
On Thu, Feb 11, 2016 at 4:40 AM, Matthijs van Duin wrote: > On 11 February 2016 at 11:53, H.J. Lu wrote: >> Since this isn't Plain Old Data (POD) for the purposes of layout, it >> isn't covered by my proposal for psABI. I leave this to C++ ABI. > > You never define "POD for the purposes of layou

Re: Linux-abi group

2016-02-11 Thread H.J. Lu via cfe-commits
On Thu, Feb 11, 2016 at 2:26 AM, Suprateeka R Hegde wrote: > H.J, > > I think we are fragmenting with too many standards and mailing lists. This > new discussion group and eventually the resulting standards, all might be > put under LSB http://refspecs.linuxfoundation.org/lsb.shtml > > The Intro o

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-11 Thread H.J. Lu via cfe-commits
On Thu, Feb 11, 2016 at 5:44 AM, Matthijs van Duin wrote: > On 11 February 2016 at 13:58, H.J. Lu wrote: >> "POD for the purpose of layout" is defined in the Itanium C++ ABI here: >> >> http://mentorembedded.github.io/cxx-abi/abi.html#definitions > > Sorry, I overlooked that. > > I still stand by

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-11 Thread H.J. Lu via cfe-commits
On Thu, Feb 11, 2016 at 6:18 AM, Matthijs van Duin wrote: > On 11 February 2016 at 15:00, H.J. Lu wrote: >> I intentionally exclude C++ specific features in my propose. > > Yet you use a definition from the Itanium C++ ABI which itself depends > on multiple definitions in a particular version of

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-11 Thread H.J. Lu via cfe-commits
On Thu, Feb 11, 2016 at 6:30 AM, Michael Matz wrote: > Hi, > > On Thu, 11 Feb 2016, Jonathan Wakely wrote: > >> On 11 February 2016 at 12:40, Matthijs van Duin wrote: >> > You never define "POD for the purposes of layout", and I can only >> > interpret it as being equivalent to "standard-layout".

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-11 Thread H.J. Lu via cfe-commits
On Thu, Feb 11, 2016 at 6:54 AM, Michael Matz wrote: > Hi, > > On Thu, 11 Feb 2016, H.J. Lu wrote: > >> Any suggestions on new wording, something like >> >> 1. "class type". A class type is a structure, union or C++ class. >> 2. "empty type". An empty type is a type where it and all of its >>

Re: Linux-abi group

2016-02-11 Thread H.J. Lu via cfe-commits
On Thu, Feb 11, 2016 at 8:05 AM, Suprateeka R Hegde wrote: > On 11-Feb-2016 07:21 PM, H.J. Lu wrote: >> >> On Thu, Feb 11, 2016 at 2:26 AM, Suprateeka R Hegde >> wrote: >>> >>> H.J, >>> >>> I think we are fragmenting with too many standards and mailing lists. >>> This >>> new discussion group and

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-12 Thread H.J. Lu via cfe-commits
On Fri, Feb 12, 2016 at 6:58 AM, Matthijs van Duin wrote: > On 11 February 2016 at 16:31, H.J. Lu wrote: >> struct A { >> static void foo (void) (); >> static int xxx; >> }; > > What about it? It's an empty struct. (And it declares a function and > a variable in the namespace of A, which however

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-16 Thread H.J. Lu via cfe-commits
On Fri, Feb 12, 2016 at 11:39 AM, H.J. Lu wrote: > On Fri, Feb 12, 2016 at 6:58 AM, Matthijs van Duin > wrote: >> On 11 February 2016 at 16:31, H.J. Lu wrote: >>> struct A { >>> static void foo (void) (); >>> static int xxx; >>> }; >> >> What about it? It's an empty struct. (And it declares a f

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-16 Thread H.J. Lu via cfe-commits
On Tue, Feb 16, 2016 at 12:22 PM, Richard Smith wrote: > On Tue, Feb 16, 2016 at 10:24 AM, H.J. Lu wrote: >> >> On Fri, Feb 12, 2016 at 11:39 AM, H.J. Lu wrote: >> > On Fri, Feb 12, 2016 at 6:58 AM, Matthijs van Duin >> > wrote: >> >> On 11 February 2016 at 16:31, H.J. Lu wrote: >> >>> struct

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-16 Thread H.J. Lu via cfe-commits
On Tue, Feb 16, 2016 at 1:02 PM, Richard Smith wrote: > On Tue, Feb 16, 2016 at 12:25 PM, H.J. Lu wrote: >> On Tue, Feb 16, 2016 at 12:22 PM, Richard Smith >> wrote: >>> On Tue, Feb 16, 2016 at 10:24 AM, H.J. Lu wrote: On Fri, Feb 12, 2016 at 11:39 AM, H.J. Lu wrote: > On Fri,

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-16 Thread H.J. Lu via cfe-commits
On Tue, Feb 16, 2016 at 1:15 PM, Richard Smith wrote: > On Tue, Feb 16, 2016 at 1:10 PM, H.J. Lu wrote: >> On Tue, Feb 16, 2016 at 1:02 PM, Richard Smith wrote: >>> On Tue, Feb 16, 2016 at 12:25 PM, H.J. Lu wrote: On Tue, Feb 16, 2016 at 12:22 PM, Richard Smith wrote: > On Tue,

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-16 Thread H.J. Lu via cfe-commits
On Tue, Feb 16, 2016 at 1:45 PM, Richard Smith wrote: > On Tue, Feb 16, 2016 at 1:21 PM, H.J. Lu wrote: >> On Tue, Feb 16, 2016 at 1:15 PM, Richard Smith wrote: >>> On Tue, Feb 16, 2016 at 1:10 PM, H.J. Lu wrote: On Tue, Feb 16, 2016 at 1:02 PM, Richard Smith wrote: > On Tue, Fe

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-16 Thread H.J. Lu via cfe-commits
On Tue, Feb 16, 2016 at 3:36 PM, Richard Smith wrote: > On Tue, Feb 16, 2016 at 1:48 PM, H.J. Lu wrote: >> On Tue, Feb 16, 2016 at 1:45 PM, Richard Smith wrote: >>> On Tue, Feb 16, 2016 at 1:21 PM, H.J. Lu wrote: On Tue, Feb 16, 2016 at 1:15 PM, Richard Smith wrote: > On Tue, Fe

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-18 Thread H.J. Lu via cfe-commits
On Thu, Feb 18, 2016 at 6:35 AM, Michael Matz wrote: > Hi, > > On Tue, 16 Feb 2016, H.J. Lu wrote: > >> Here is the new definition: >> >> An empty type is a type where it and all of its subobjects (recursively) >> are of class, structure, union, or array type. No memory slot nor >> register shoul

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-19 Thread H.J. Lu via cfe-commits
On Fri, Feb 19, 2016 at 5:35 AM, Michael Matz wrote: > Hi, > > On Thu, 18 Feb 2016, Richard Smith wrote: > >> >> An empty type is a type where it and all of its subobjects >> >> (recursively) are of class, structure, union, or array type. No >> >> memory slot nor register should be used to pass o

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-19 Thread H.J. Lu via cfe-commits
On Fri, Feb 19, 2016 at 11:03 AM, Matthijs van Duin wrote: > On 19 February 2016 at 14:35, Michael Matz wrote: >> struct S { >> S() {something();} >> }; >> >> would be an empty type, and that's not what we want. > > Why not? The default constructor is never invoked as part of passing > such an

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-20 Thread H.J. Lu via cfe-commits
On Fri, Feb 19, 2016 at 1:07 PM, Richard Smith wrote: > On Fri, Feb 19, 2016 at 5:35 AM, Michael Matz wrote: >> Hi, >> >> On Thu, 18 Feb 2016, Richard Smith wrote: >> >>> >> An empty type is a type where it and all of its subobjects >>> >> (recursively) are of class, structure, union, or array ty

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-20 Thread H.J. Lu via cfe-commits
On Sat, Feb 20, 2016 at 10:50 AM, Matthijs van Duin wrote: > On 20 February 2016 at 18:55, H.J. Lu wrote: >> struct dummy0 >> { >> }; >> >> struct dummy >> { >> dummy0 d[20]; >> >> dummy0 * foo (int i); >> }; >> >> dummy0 * >> dummy::foo (int i) >> { >> return &d[i]; >> } >> >> dummy0 * >>

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-20 Thread H.J. Lu via cfe-commits
On Sat, Feb 20, 2016 at 11:40 AM, Matthijs van Duin wrote: > On 20 February 2016 at 20:34, H.J. Lu wrote: >> Is there a class, which meets the above definition, with a member function >> which can't be passed without a memory slot or a register? > > The EmptyInt class in my first post in this th

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-20 Thread H.J. Lu via cfe-commits
On Sat, Feb 20, 2016 at 4:57 PM, Matthijs van Duin wrote: > On 20 February 2016 at 23:35, H.J. Lu wrote: >> Can a compiler tell if a copy constructor or destructor is trivial >> from the class declaration without function body? > > Yes, the mere presence of the declaration suffices to render it >

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-20 Thread H.J. Lu via cfe-commits
On Sat, Feb 20, 2016 at 9:47 PM, Richard Smith wrote: > On 20 Feb 2016 6:54 p.m., "H.J. Lu" wrote: >> >> On Sat, Feb 20, 2016 at 4:57 PM, Matthijs van Duin >> wrote: >> > On 20 February 2016 at 23:35, H.J. Lu wrote: >> >> Can a compiler tell if a copy constructor or destructor is trivial >> >>

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-21 Thread H.J. Lu via cfe-commits
On Sat, Feb 20, 2016 at 10:48 PM, Richard Smith wrote: > On 20 Feb 2016 10:01 p.m., "H.J. Lu" wrote: >> >> On Sat, Feb 20, 2016 at 9:47 PM, Richard Smith >> wrote: >> > On 20 Feb 2016 6:54 p.m., "H.J. Lu" wrote: >> >> >> >> On Sat, Feb 20, 2016 at 4:57 PM, Matthijs van Duin >> >> wrote: >> >>

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-23 Thread H.J. Lu via cfe-commits
On Mon, Feb 22, 2016 at 4:50 AM, Michael Matz wrote: > Hi, > > On Sat, 20 Feb 2016, Richard Smith wrote: > >> > An empty type is a type where it and all of its subobjects >> > (recursively) are of class, structure, union, or array type. >> > >> > doesn't cover "trivially-copyable". >> >> That's co

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-23 Thread H.J. Lu via cfe-commits
On Tue, Feb 23, 2016 at 7:30 AM, Michael Matz wrote: > Hi, > > On Tue, 23 Feb 2016, H.J. Lu wrote: > >> > --- >> > An empty type is a type where it and all of its subobjects (recursively) >> > are of class, structure, union, or array type. No memory slot nor >> > register should be used to pass o

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-23 Thread H.J. Lu via cfe-commits
On Tue, Feb 23, 2016 at 8:15 AM, Michael Matz wrote: > Hi, > > On Tue, 23 Feb 2016, H.J. Lu wrote: > >> I thought >> >> --- >> An empty type is a type where it and all of its subobjects (recursively) >> are of class, structure, union, or array type. >> --- >> >> excluded >> >> struct empty >> { >>

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-02-26 Thread H.J. Lu via cfe-commits
On Tue, Feb 23, 2016 at 5:14 PM, Richard Smith wrote: > On Tue, Feb 23, 2016 at 8:28 AM, H.J. Lu wrote: >> On Tue, Feb 23, 2016 at 8:15 AM, Michael Matz wrote: >>> Hi, >>> >>> On Tue, 23 Feb 2016, H.J. Lu wrote: >>> I thought --- An empty type is a type where it and all of it

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct

2016-03-08 Thread H.J. Lu via cfe-commits
On Tue, Mar 1, 2016 at 8:43 AM, Michael Matz via cfe-commits wrote: > Hi, > > On Mon, 29 Feb 2016, Jason Merrill wrote: > >> > Also this insistence that all of "trivially copyable" is already quite >> > nicely specified in the C++ ABI is still not really relevant because >> > C++ _is not the only

[PATCH] D16469: Pass --wrap=pthread_create to linker for -fsplit-stack

2016-01-22 Thread H.J Lu via cfe-commits
hjl.tools created this revision. hjl.tools added a reviewer: rsmith. hjl.tools added a subscriber: cfe-commits. From https://gcc.gnu.org/ml/gcc-patches/2010-09/msg01807.html -fsplit-stack should pass --wrap=pthread_create to linker for -fsplit-stack It is needed to initialize the stack guard. T

Re: [PATCH] D16469: Pass --wrap=pthread_create to linker for -fsplit-stack

2016-01-22 Thread H.J Lu via cfe-commits
hjl.tools updated this revision to Diff 45735. hjl.tools added a comment. Add a testcase. http://reviews.llvm.org/D16469 Files: lib/Driver/Tools.cpp test/Driver/split-stack-ld.c Index: test/Driver/split-stack-ld.c === --- /dev

Re: [PATCH] D16469: Pass --wrap=pthread_create to linker for -fsplit-stack

2016-01-25 Thread H.J Lu via cfe-commits
hjl.tools added a comment. Can you check it in for me? Thanks. http://reviews.llvm.org/D16469 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits