[Bug c/36849] IMA rejects to merge (function)decls with va_args
--- Comment #4 from aldot at gcc dot gnu dot org 2008-08-12 15:48 --- (In reply to comment #3) > You don't. You can try some tricks with __asm__ but I would not recommend it > though. Yes, i dont' want that. > > As far as I can tell mremap only takes 4 arguments anyways. unfortunately it has a very ugly interface and takes a 5th argument, depending on the flags: void * mremap(void *old_address, size_t old_size , size_t new_size, int flags); [] The flags bit-mask argument may be 0, or include the following flag: [] MREMAP_FIXED (since Linux 2.3.31) This flag serves a similar purpose to the MAP_FIXED flag of mmap(2). If this flag is specified, then mremap() accepts a fifth argument, void *new_address, which specifies a page- aligned address to which the mapping must be moved. Any previ- ous mapping at the address range specified by new_address and new_size is unmapped. If MREMAP_FIXED is specified, then MREMAP_MAYMOVE must also be specified. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36849
[Bug c/36849] IMA rejects to merge (function)decls with va_args
--- Comment #3 from pinskia at gcc dot gnu dot org 2008-08-12 15:04 --- (In reply to comment #2) > Do you have a suggestion on how libc could legally provide an mremap > implementation as per the example in #0 that can be compiled with -combine? You don't. You can try some tricks with __asm__ but I would not recommend it though. As far as I can tell mremap only takes 4 arguments anyways. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36849
[Bug c/36849] IMA rejects to merge (function)decls with va_args
--- Comment #2 from aldot at gcc dot gnu dot org 2008-08-12 09:54 --- (In reply to comment #1) > The error message is correct as the function types are not compatible. If in > fact this is invalid C even though we don't currently diagnostic it without > -combine. > > Closing as invalid as -combine is doing the correct job of rejecting this. > > > Ideally the __VA_ARGS__ would be dealt with as "any or none" param decl, so > > the > > function(s) above would be considered equal. > > No, that is not what the C/C++ standard says about compatible function types. > > Yes we could enable this and have -pedantic-error reject it but I don't see > why > we should allow this as it is obvious invalid C code. Do you have a suggestion on how libc could legally provide an mremap implementation as per the example in #0 that can be compiled with -combine? -- aldot at gcc dot gnu dot org changed: What|Removed |Added CC||pinskia at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36849
[Bug c/36849] IMA rejects to merge (function)decls with va_args
--- Comment #1 from pinskia at gcc dot gnu dot org 2008-08-11 00:50 --- The error message is correct as the function types are not compatible. If in fact this is invalid C even though we don't currently diagnostic it without -combine. Closing as invalid as -combine is doing the correct job of rejecting this. > Ideally the __VA_ARGS__ would be dealt with as "any or none" param decl, so > the > function(s) above would be considered equal. No, that is not what the C/C++ standard says about compatible function types. Yes we could enable this and have -pedantic-error reject it but I don't see why we should allow this as it is obvious invalid C code. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Component|middle-end |c Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36849