Control: reassign -1 gcc 4:6.1.1-1

Starting with the upload of gcc 4:6.1.1-1, when gcc was moved to gcc-6, quite a
bunch of packages started failing their autopkgtests related to
abi-compliance-checker.

For example, in https://ci.debian.net/packages/c/cjs/unstable/amd64/ it's
possible to see that cjs was passing the autopkgtests until August 3rd, and
started failing on August 4th after the upload that made gcc-6 the default.

To reproduce the bug, install libcjs0 and libcjs-dev, create a /tmp/dummy.h
containing:
#include "/usr/include/cjs-1.0/cjs/gjs-module.h"

And then compile that with:

gcc -fdump-translation-unit -fkeep-inline-functions -c -x c++-header 
-fpermissive -w  -I/usr/include/js "/tmp/dummy.h"  -I/usr/include/cjs-1.0 
-I/usr/include/mozjs-24 -I/usr/include/gobject-introspection-1.0 
-I/usr/include/glib-2.0 -I/tmp/buildd/cjs-3.2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include

This yields the following errors:

In file included from /usr/include/mozjs-24/jsapi.h:32:0,
                 from /usr/include/cjs-1.0/cjs/compat.h:37,
                 from /usr/include/cjs-1.0/cjs/jsapi-util.h:31,
                 from /usr/include/cjs-1.0/cjs/native.h:32,
                 from /usr/include/cjs-1.0/cjs/gjs-module.h:28,
                 from /tmp/dump.h:2:
/usr/include/mozjs-24/js/Vector.h: In destructor 
'JS::AutoVectorRooter<JS::Value>::~AutoVectorRooter()':
/usr/include/mozjs-24/js/Vector.h:589:1: error: inlining failed in call to 
always_inline 'js::Vector<T, MinInlineCapacity, AllocPolicy>::~Vector() 
noexcept [with T = JS::Value; long unsigned int N = 8ul; AllocPolicy = 
js::TempAllocPolicy]': function body not available
 Vector<T,N,AP>::~Vector()
 ^~~~~~~~~~~~~~
In file included from /usr/include/cjs-1.0/cjs/compat.h:37:0,
                 from /usr/include/cjs-1.0/cjs/jsapi-util.h:31,
                 from /usr/include/cjs-1.0/cjs/native.h:32,
                 from /usr/include/cjs-1.0/cjs/gjs-module.h:28,
                 from /tmp/dump.h:2:
/usr/include/mozjs-24/jsapi.h:219:7: note: called from here
 class AutoVectorRooter : protected AutoGCRooter
       ^~~~~~~~~~~~~~~~

I don't know what's going on here, but it sounds like gcc is doing something
wrong, given that it's unable to find a function body which is actually there:

http://sources.debian.net/src/mozjs24/24.2.0-5/js/public/Vector.h#L587

template <class T, size_t N, class AP>
JS_ALWAYS_INLINE
Vector<T,N,AP>::~Vector()
{
    REENTRANCY_GUARD_ET_AL;
    Impl::destroy(beginNoCheck(), endNoCheck());
    if (!usingInlineStorage())
        this->free_(beginNoCheck());
}

Please let me know if you need any additional information.

-- 
Regards,
Marga

Attachment: signature.asc
Description: Digital signature

Reply via email to