This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH/IPA] Fix ipa-polymorphic-call when size of Pmode is not the size of pointers in user code


On Wed, Nov 19, 2014 at 5:53 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Wed, Nov 19, 2014 at 5:39 PM, Andrew Pinski <pinskia@gmail.com> wrote:
>> On Wed, Nov 19, 2014 at 5:37 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Wed, Nov 19, 2014 at 5:36 PM, Andrew Pinski <pinskia@gmail.com> wrote:
>>>> On Wed, Nov 19, 2014 at 5:35 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>>> On Wed, Nov 19, 2014 at 5:23 PM, Andrew Pinski <pinskia@gmail.com> wrote:
>>>>>> On Wed, Nov 19, 2014 at 5:11 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>>>>>> On Wed, Nov 19, 2014 at 4:54 PM, Andrew Pinski <pinskia@gmail.com> wrote:
>>>>>>>> Hi,
>>>>>>>>   For ILP32 on AARCH64, we have ptr_mode != Pmode (we have ptr_mode
>>>>>>>> being SImode while Pmode is DImode and POINTER_SIZE is 32).  This
>>>>>>>> breaks ipa-polymorphic-call assumption that Pmode is the correct mode
>>>>>>>> for pointers.  Right now before this patch we get many testcase
>>>>>>>> failures in the C++ testsuite due to this.  Some of the tests fail due
>>>>>>>> to the wrong devirtualization happening (using the base class rather
>>>>>>>> the current class).
>>>>>>>>
>>>>>>>> This patch fixes the issue by using POINTER_SIZE in place of
>>>>>>>> GET_MODE_BITSIZE (Pmode) all over the file.
>>>>>>>>
>>>>>>>> OK?  Bootstrapped and tested on x86_64 and cross built and tested for
>>>>>>>> aarch64-elf with no regressions.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Andrew Pinski
>>>>>>>>
>>>>>>>> ChangeLog:
>>>>>>>> ipa/63981
>>>>>>>> * ipa-polymorphic-call.c (possible_placement_new):
>>>>>>>> Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
>>>>>>>> (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
>>>>>>>> (extr_type_from_vtbl_ptr_store): Likewise.
>>>>>>>
>>>>>>> Does Pmode affect class layout?
>>>>>>
>>>>>> No only POINTER_SIZE.  ILP32 is one of the few ABIs where Pmode !=
>>>>>> ptr_mode (sizeof(ptr_mode) == POINTER_SIZE always).
>>>>>>
>>>>>> x32 has a similar issue with -maddress-mode=long but the default for
>>>>>> x32 is -maddress-mode=short.
>>>>>
>>>>> Pmode shouldn't change class layout, which is determined by ptr_mode.
>>>>> You can mix  object files compiled by -maddress-mode=long with
>>>>> -maddress-mode=short.  Do those tests fail with -maddress-mode=long
>>>>> under x32?
>>>>
>>>>
>>>> I suspect they do fail with -maddress-mode=long but I did not try as I
>>>> don't have x32 testing setup right now.
>>>>
>>>
>>> Which one may fail with -maddress-mode=long?
>>
>> The full list of the failures can be found in
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63982 and
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63981 and below:
>>
>> FAIL: g++.dg/ipa/devirt-10.C  -std=gnu++98  scan-ipa-dump-times cp
>> "Discovered a virtual call to a known target" 2
>> FAIL: g++.dg/ipa/devirt-10.C  -std=gnu++11  scan-ipa-dump-times cp
>> "Discovered a virtual call to a known target" 2
>> FAIL: g++.dg/ipa/devirt-10.C  -std=gnu++14  scan-ipa-dump-times cp
>> "Discovered a virtual call to a known target" 2
>> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++98  scan-ipa-dump devirt
>> "Speculative targets"
>> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++98  scan-ipa-dump devirt "1
>> speculatively devirtualized"
>> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++11  scan-ipa-dump devirt
>> "Speculative targets"
>> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++11  scan-ipa-dump devirt "1
>> speculatively devirtualized"
>> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++14  scan-ipa-dump devirt
>> "Speculative targets"
>> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++14  scan-ipa-dump devirt "1
>> speculatively devirtualized"
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++98 (internal compiler error)
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++98 (test for excess errors)
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++98  scan-tree-dump fre1
>> "converting indirect call to function virtual int B::t"
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++11 (internal compiler error)
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++11 (test for excess errors)
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++11  scan-tree-dump fre1
>> "converting indirect call to function virtual int B::t"
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++14 (internal compiler error)
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++14 (test for excess errors)
>> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++14  scan-tree-dump fre1
>> "converting indirect call to function virtual int B::t"
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++98 (internal compiler error)
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++98 (test for excess errors)
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++98  scan-tree-dump fre1
>> "converting indirect call to function virtual int B::t"
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++11 (internal compiler error)
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++11 (test for excess errors)
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++11  scan-tree-dump fre1
>> "converting indirect call to function virtual int B::t"
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++14 (internal compiler error)
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++14 (test for excess errors)
>> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++14  scan-tree-dump fre1
>> "converting indirect call to function virtual int B::t"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++98  scan-tree-dump fre2 "No
>> dynamic type change found."
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++98  scan-tree-dump fre2
>> "Checking vtbl store:"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++98  scan-tree-dump fre2
>> "Function call may change dynamic type:extcall"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++98  scan-tree-dump fre2
>> "converting indirect call to function virtual void"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++11  scan-tree-dump fre2 "No
>> dynamic type change found."
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++11  scan-tree-dump fre2
>> "Checking vtbl store:"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++11  scan-tree-dump fre2
>> "Function call may change dynamic type:extcall"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++11  scan-tree-dump fre2
>> "converting indirect call to function virtual void"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++14  scan-tree-dump fre2 "No
>> dynamic type change found."
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++14  scan-tree-dump fre2
>> "Checking vtbl store:"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++14  scan-tree-dump fre2
>> "Function call may change dynamic type:extcall"
>> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++14  scan-tree-dump fre2
>> "converting indirect call to function virtual void"
>> FAIL: g++.dg/ipa/devirt-41.C  -std=gnu++98  scan-ipa-dump inline
>> "Second type is base of first"
>> FAIL: g++.dg/ipa/devirt-41.C  -std=gnu++11  scan-ipa-dump inline
>> "Second type is base of first"
>> FAIL: g++.dg/ipa/devirt-41.C  -std=gnu++14  scan-ipa-dump inline
>> "Second type is base of first"
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-times inline
>> "First type is base of second" 3
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target" 2
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-tree-dump-times
>> optimized "return 2" 3
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-tree-dump-not
>> optimized "OBJ_TYPE_REF"
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-ipa-dump-times inline
>> "First type is base of second" 3
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target" 2
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-tree-dump-times
>> optimized "return 2" 3
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-tree-dump-not
>> optimized "OBJ_TYPE_REF"
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-ipa-dump-times inline
>> "First type is base of second" 3
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target" 2
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-tree-dump-times
>> optimized "return 2" 3
>> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-tree-dump-not
>> optimized "OBJ_TYPE_REF"
>> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++98  scan-ipa-dump inline
>> "Second type is base of first"
>> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++98  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++11  scan-ipa-dump inline
>> "Second type is base of first"
>> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++11  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++14  scan-ipa-dump inline
>> "Second type is base of first"
>> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++14  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++98  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++11  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++14  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-46.C  -std=gnu++98  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-46.C  -std=gnu++11  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-46.C  -std=gnu++14  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
>> FAIL: g++.dg/ipa/devirt-47.C  -std=gnu++98  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*C::_ZTh" 1
>> FAIL: g++.dg/ipa/devirt-47.C  -std=gnu++11  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*C::_ZTh" 1
>> FAIL: g++.dg/ipa/devirt-47.C  -std=gnu++14  scan-ipa-dump-times inline
>> "Discovered a virtual call to a known target[^\\n]*C::_ZTh" 1
>> FAIL: g++.dg/ipa/devirt-9.C  -std=gnu++98  scan-ipa-dump-not
>> whole-program "OBJ_TYPE_REF"
>> FAIL: g++.dg/ipa/devirt-9.C  -std=gnu++11  scan-ipa-dump-not
>> whole-program "OBJ_TYPE_REF"
>> FAIL: g++.dg/ipa/devirt-9.C  -std=gnu++14  scan-ipa-dump-not
>> whole-program "OBJ_TYPE_REF"
>> FAIL: g++.dg/ipa/devirt-g-1.C  -std=gnu++98  scan-tree-dump-times
>> optimized "OBJ_TYPE_REF" 0
>> FAIL: g++.dg/ipa/devirt-g-1.C  -std=gnu++11  scan-tree-dump-times
>> optimized "OBJ_TYPE_REF" 0
>> FAIL: g++.dg/ipa/devirt-g-1.C  -std=gnu++14  scan-tree-dump-times
>> optimized "OBJ_TYPE_REF" 0
>> FAIL: g++.dg/ipa/pr60600.C  -std=gnu++98  scan-ipa-dump cp "Type
>> inconsistent devirtualization"
>> FAIL: g++.dg/ipa/pr60600.C  -std=gnu++11  scan-ipa-dump cp "Type
>> inconsistent devirtualization"
>> FAIL: g++.dg/ipa/pr60600.C  -std=gnu++14  scan-ipa-dump cp "Type
>> inconsistent devirtualization"
>> FAIL: g++.dg/opt/pr36185.C  -std=gnu++98 execution test
>> FAIL: g++.dg/opt/pr36185.C  -std=gnu++11 execution test
>> FAIL: g++.dg/opt/pr36185.C  -std=gnu++14 execution test
>> FAIL: g++.dg/tree-ssa/20040317-1.C  -std=gnu++98 execution test
>> FAIL: g++.dg/tree-ssa/20040317-1.C  -std=gnu++11 execution test
>> FAIL: g++.dg/tree-ssa/20040317-1.C  -std=gnu++14 execution test
>> FAIL: g++.dg/torture/covariant-1.C   -O2  execution test
>> FAIL: g++.dg/torture/covariant-1.C   -O3 -fomit-frame-pointer  execution test
>> FAIL: g++.dg/torture/covariant-1.C   -O3 -g  execution test
>> FAIL: g++.dg/torture/covariant-1.C   -Os  execution test
>> FAIL: g++.dg/torture/covariant-1.C   -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none  execution test
>> FAIL: g++.dg/torture/covariant-1.C   -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects  execution test
>>
>>
>> Thanks,
>> Andrew
>>
>
> I saw

Yes and can you try my patch too?

Thanks,
Andrew Pinski


>
> make check-c++ RUNTESTFLAGS="--target_board='unix{-mx32\
> -maddress-mode=long}' dg.exp=devirt-*.C"
> ...
> Running target unix/-mx32 -maddress-mode=long
> Using /usr/share/dejagnu/baseboards/unix.exp as board description file
> for target.
> Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
> Using /export/gnu/import/git/gcc/gcc/testsuite/config/default.exp as
> tool-and-target-specific interface file.
> Running /export/gnu/import/git/gcc/gcc/testsuite/g++.dg/dg.exp ...
> FAIL: g++.dg/ipa/devirt-10.C  -std=gnu++98  scan-ipa-dump-times cp
> "Discovered a virtual call to a known target" 2
> FAIL: g++.dg/ipa/devirt-10.C  -std=gnu++11  scan-ipa-dump-times cp
> "Discovered a virtual call to a known target" 2
> FAIL: g++.dg/ipa/devirt-10.C  -std=gnu++14  scan-ipa-dump-times cp
> "Discovered a virtual call to a known target" 2
> FAIL: g++.dg/ipa/devirt-29.C  -std=gnu++11 execution test
> FAIL: g++.dg/ipa/devirt-29.C  -std=gnu++14 execution test
> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++98  scan-ipa-dump devirt
> "Speculative targets"
> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++98  scan-ipa-dump devirt "1
> speculatively devirtualized"
> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++11  scan-ipa-dump devirt
> "Speculative targets"
> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++11  scan-ipa-dump devirt "1
> speculatively devirtualized"
> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++14  scan-ipa-dump devirt
> "Speculative targets"
> FAIL: g++.dg/ipa/devirt-34.C  -std=gnu++14  scan-ipa-dump devirt "1
> speculatively devirtualized"
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++98 (internal compiler error)
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++98 (test for excess errors)
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++98  scan-tree-dump fre1
> "converting indirect call to function virtual int B::t"
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++11 (internal compiler error)
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++11 (test for excess errors)
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++11  scan-tree-dump fre1
> "converting indirect call to function virtual int B::t"
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++14 (internal compiler error)
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++14 (test for excess errors)
> FAIL: g++.dg/ipa/devirt-35.C  -std=gnu++14  scan-tree-dump fre1
> "converting indirect call to function virtual int B::t"
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++98 (internal compiler error)
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++98 (test for excess errors)
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++98  scan-tree-dump fre1
> "converting indirect call to function virtual int B::t"
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++11 (internal compiler error)
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++11 (test for excess errors)
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++11  scan-tree-dump fre1
> "converting indirect call to function virtual int B::t"
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++14 (internal compiler error)
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++14 (test for excess errors)
> FAIL: g++.dg/ipa/devirt-36.C  -std=gnu++14  scan-tree-dump fre1
> "converting indirect call to function virtual int B::t"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++98  scan-tree-dump fre2 "No
> dynamic type change found."
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++98  scan-tree-dump fre2
> "Checking vtbl store:"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++98  scan-tree-dump fre2
> "Function call may change dynamic type:extcall"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++98  scan-tree-dump fre2
> "converting indirect call to function virtual void"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++11  scan-tree-dump fre2 "No
> dynamic type change found."
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++11  scan-tree-dump fre2
> "Checking vtbl store:"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++11  scan-tree-dump fre2
> "Function call may change dynamic type:extcall"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++11  scan-tree-dump fre2
> "converting indirect call to function virtual void"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++14  scan-tree-dump fre2 "No
> dynamic type change found."
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++14  scan-tree-dump fre2
> "Checking vtbl store:"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++14  scan-tree-dump fre2
> "Function call may change dynamic type:extcall"
> FAIL: g++.dg/ipa/devirt-37.C  -std=gnu++14  scan-tree-dump fre2
> "converting indirect call to function virtual void"
> FAIL: g++.dg/ipa/devirt-41.C  -std=gnu++98  scan-ipa-dump inline
> "Second type is base of first"
> FAIL: g++.dg/ipa/devirt-41.C  -std=gnu++11  scan-ipa-dump inline
> "Second type is base of first"
> FAIL: g++.dg/ipa/devirt-41.C  -std=gnu++14  scan-ipa-dump inline
> "Second type is base of first"
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-times inline
> "First type is base of second" 3
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target" 2
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-tree-dump-times
> optimized "return 2" 3
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++98  scan-tree-dump-not
> optimized "OBJ_TYPE_REF"
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-ipa-dump-times inline
> "First type is base of second" 3
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target" 2
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-tree-dump-times
> optimized "return 2" 3
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++11  scan-tree-dump-not
> optimized "OBJ_TYPE_REF"
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-ipa-dump-times inline
> "First type is base of second" 3
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target" 2
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-tree-dump-times
> optimized "return 2" 3
> FAIL: g++.dg/ipa/devirt-42.C  -std=gnu++14  scan-tree-dump-not
> optimized "OBJ_TYPE_REF"
> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++98  scan-ipa-dump inline
> "Second type is base of first"
> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++98  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++11  scan-ipa-dump inline
> "Second type is base of first"
> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++11  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++14  scan-ipa-dump inline
> "Second type is base of first"
> FAIL: g++.dg/ipa/devirt-44.C  -std=gnu++14  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++98  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++11  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-45.C  -std=gnu++14  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-46.C  -std=gnu++98  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-46.C  -std=gnu++11  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-46.C  -std=gnu++14  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*B::foo" 1
> FAIL: g++.dg/ipa/devirt-47.C  -std=gnu++98  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*C::_ZTh" 1
> FAIL: g++.dg/ipa/devirt-47.C  -std=gnu++11  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*C::_ZTh" 1
> FAIL: g++.dg/ipa/devirt-47.C  -std=gnu++14  scan-ipa-dump-times inline
> "Discovered a virtual call to a known target[^\\n]*C::_ZTh" 1
> FAIL: g++.dg/ipa/devirt-9.C  -std=gnu++98  scan-ipa-dump-not
> whole-program "OBJ_TYPE_REF"
> FAIL: g++.dg/ipa/devirt-9.C  -std=gnu++11  scan-ipa-dump-not
> whole-program "OBJ_TYPE_REF"
> FAIL: g++.dg/ipa/devirt-9.C  -std=gnu++14  scan-ipa-dump-not
> whole-program "OBJ_TYPE_REF"
> FAIL: g++.dg/ipa/devirt-g-1.C  -std=gnu++98  scan-tree-dump-times
> optimized "OBJ_TYPE_REF" 0
> FAIL: g++.dg/ipa/devirt-g-1.C  -std=gnu++11  scan-tree-dump-times
> optimized "OBJ_TYPE_REF" 0
> FAIL: g++.dg/ipa/devirt-g-1.C  -std=gnu++14  scan-tree-dump-times
> optimized "OBJ_TYPE_REF" 0
>
> === g++ Summary ===
>
> # of expected passes 394
> # of unexpected failures 77
> # of expected failures 9
> # of unresolved testcases 12
> # of unsupported tests 2
>
>
> --
> H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]