[Bug c++/54557] [c++ lambda] error in assigning lambda expr though operator?: while capturing
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54557 vincenzo Innocente vincenzo.innocente at cern dot ch changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID Summary|[c++ lambda] error in |[c++ lambda] error in |assigning lambda expr |assigning lambda expr |though operator?: while |though operator?: while |catching|capturing --- Comment #2 from vincenzo Innocente vincenzo.innocente at cern dot ch 2012-09-13 06:37:02 UTC --- Understood. Thanks for the detailed answer: I will read the standard more in detail. Syntactic-wise It seems that I can implement it as bool A::foo4(int i, int j) const { auto f1 = sel ? [](int a, int b,int) { return ab;} : [](int a, int b, int k) { return ab+k;}; auto f = [this,f1](int a, int b) { return f1(a,b,q);}; return f(i,j); } As optimization is what I'm looking for I will look to the generated assembler and then decide the specific implementation.
[Bug gcov-profile/54487] [4.8 Regression] profiledbootstrap broken by r190952
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487 Markus Trippelsdorf markus at trippelsdorf dot de changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #29 from Markus Trippelsdorf markus at trippelsdorf dot de 2012-09-13 06:39:02 UTC --- Fixed. Thanks all.
[Bug target/54546] SH: Enable -fshrink-wrap
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54546 --- Comment #1 from chrbr at gcc dot gnu.org 2012-09-13 06:40:54 UTC --- shrink-wrapping exposes a few problems related to partitioning. 1) Tries to duplicate a Basic block that has only one predecessor coming from a different partition. Since the edge is not marking with with EDGE_CROSSING missing across section boundary. Note that even with EDGE_CROSSING information, the generated code would be quite bad, with extra jumps coming from the critical path. The problem is explained with the start of a resolution here http://gcc.gnu.org/ml/gcc-patches/2012-09/msg00794.html 2) Seem to miss redirecting CROSS_JUMPING jumps. When we have jump_insn 205 204 179 4 (set (pc) (reg:SI 1 r1 [237])) 316 {indirect_jump_compact} (expr_list:REG_CROSSING_JUMP (nil) (nil)) we have a JUMP_LABEL (insn) containing the setting or r1 with the label_rtx, but 'patch_jump_insn' fails to see it, although it looks like the branch could be redirected.
[Bug driver/54563] New: [4.7][C++11] MacOS 10.8, ICE in redirect_eh_edge_1, at tree-eh.c:2215
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54563 Bug #: 54563 Summary: [4.7][C++11] MacOS 10.8, ICE in redirect_eh_edge_1, at tree-eh.c:2215 Classification: Unclassified Product: gcc Version: 4.7.1 Status: UNCONFIRMED Severity: major Priority: P3 Component: driver AssignedTo: unassig...@gcc.gnu.org ReportedBy: david.abdurachma...@gmail.com Created attachment 28184 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28184 Pre-processed testcase Tested with 190338 (pre-4.7.2) and 188597 (4.7.1). It only happens with double and float. If you switch to int and pow function instead of powf it works fine. It crashes only on C++11. Compiled files with -ansi (no C++11), exit code 0. Current workaround/fix is to use std::pow() in the code. GCC compiled with LLVM/clang on Mac OS X 10.8, Xcode 4.4 (build: 4F250) $ clang -v Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on LLVM 3.1svn) Target: x86_64-apple-darwin12.0.0 Thread model: posix sw_vers ProductName:Mac OS X ProductVersion: 10.8 BuildVersion: 12A269 ## Detailed information about GCC ## c++: warning: -pipe ignored because -save-temps specified Using built-in specs. COLLECT_GCC=/Volumes/build1/davidlt/test-4.7.0/a/osx108_amd64_gcc470/external/gcc/4.7.0-cms/bin/c++ Target: x86_64-apple-darwin12.0.0 Configured with: ../configure --prefix=/Volumes/build1/davidlt/test-4.7.0/a/tmp/BUILDROOT/28dac03f73e4471589c20bae3c32fbc1/opt/cmssw/osx108_amd64_gcc470/external/gcc/4.7.0-cms --disable-multilib --disable-nls --enable-languages=c,c++,fortran,objc,obj-c++ --with-gmp=/Volumes/build1/davidlt/test-4.7.0/a/tmp/BUILDROOT/28dac03f73e4471589c20bae3c32fbc1/opt/cmssw/osx108_amd64_gcc470/external/gcc/4.7.0-cms --with-mpfr=/Volumes/build1/davidlt/test-4.7.0/a/tmp/BUILDROOT/28dac03f73e4471589c20bae3c32fbc1/opt/cmssw/osx108_amd64_gcc470/external/gcc/4.7.0-cms --with-mpc=/Volumes/build1/davidlt/test-4.7.0/a/tmp/BUILDROOT/28dac03f73e4471589c20bae3c32fbc1/opt/cmssw/osx108_amd64_gcc470/external/gcc/4.7.0-cms --with-ppl=/Volumes/build1/davidlt/test-4.7.0/a/tmp/BUILDROOT/28dac03f73e4471589c20bae3c32fbc1/opt/cmssw/osx108_amd64_gcc470/external/gcc/4.7.0-cms --with-cloog=/Volumes/build1/davidlt/test-4.7.0/a/tmp/BUILDROOT/28dac03f73e4471589c20bae3c32fbc1/opt/cmssw/osx108_amd64_gcc470/external/gcc/4.7.0-cms --enable-cloog-backend=isl --enable-shared CC='clang -fPIC' CXX='clang++ -fPIC' CPP='clang -E' CXXCPP='clang++ -E' Thread model: posix gcc version 4.7.1 (GCC) COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.8.0' '-v' '-save-temps' '-c' '-D' 'GNU_GCC' '-D' '_GNU_SOURCE' '-D' '__STDC_LIMIT_MACROS' '-D' '__STDC_FORMAT_MACROS' '-O2' '-pedantic' '-ansi' '-pthread' '-pipe' '-Wno-vla' '-m64' '-std=c++11' '-msse3' '-ftree-vectorize' '-Wno-strict-overflow' '-Werror=array-bounds' '-Werror=format-contains-nul' '-Werror=type-limits' '-fvisibility-inlines-hidden' '-fno-math-errno' '--param' 'vect-max-version-for-alias-checks=50' '-fipa-pta' '-felide-constructors' '-fmessage-length=0' '-ftemplate-depth=300' '-Wall' '-Wno-non-template-friend' '-Wno-long-long' '-Wreturn-type' '-Wunused' '-Wparentheses' '-Wno-deprecated' '-Werror=return-type' '-Werror=missing-braces' '-Werror=unused-value' '-Werror=address' '-Werror=format' '-Werror=sign-compare' '-Werror=write-strings' '-fdiagnostics-show-option' '-fPIC' '-MMD' '-o' 'osx108-ice-testcase.o' '-shared-libgcc' '-mtune=core2' /Volumes/build1/davidlt/test-4.7.0/a/osx108_amd64_gcc470/external/gcc/4.7.0-cms/bin/../libexec/gcc/x86_64-apple-darwin12.0.0/4.7.1/cc1plus -E -quiet -v -iprefix /Volumes/build1/davidlt/test-4.7.0/a/osx108_amd64_gcc470/external/gcc/4.7.0-cms/bin/../lib/gcc/x86_64-apple-darwin12.0.0/4.7.1/ -MMD osx108-ice-testcase.d -MQ osx108-ice-testcase.o -D__DYNAMIC__ -D_REENTRANT -D GNU_GCC -D _GNU_SOURCE -D __STDC_LIMIT_MACROS -D __STDC_FORMAT_MACROS ./osx108-ice-testcase.cc -fPIC -mmacosx-version-min=10.8.0 -m64 -msse3 -mtune=core2 -ansi -std=c++11 -pedantic -Wno-vla -Wno-strict-overflow -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wunused -Wparentheses -Wno-deprecated -Werror=return-type -Werror=missing-braces -Werror=unused-value -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -ftree-vectorize -fvisibility-inlines-hidden -fno-math-errno -fipa-pta -felide-constructors -fmessage-length=0 -ftemplate-depth=300 -fdiagnostics-show-option -fPIC -O2 -fpch-preprocess -o osx108-ice-testcase.ii ignoring nonexistent directory /Volumes/build1/davidlt/test-4.7.0/a/osx108_amd64_gcc470/external/gcc/4.7.0-cms/bin/../lib/gcc/x86_64-apple-darwin12.0.0/4.7.1/../../../../x86_64-apple-darwin12.0.0/include ignoring duplicate directory /Volumes/build1/davidlt/test-4.7.0/a/osx108_amd64_gcc470/external/gcc/4.7.0-cms/bin/../lib/gcc/../../lib/gcc/x86_64-apple-darwin12.0.0/4.7.1/../../../../include/c++/4.7.1
[Bug target/54445] TLS array lookup with negative constant is not combined into a single instruction
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54445 --- Comment #8 from Adam Warner adam at consulting dot net.nz 2012-09-13 09:01:44 UTC --- Awesome! Thanks Uros Bizjak and H.J. Lu for locating and fixing the bug.
[Bug driver/54563] [4.7][C++11] MacOS 10.8, ICE in redirect_eh_edge_1, at tree-eh.c:2215
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54563 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-09-13 Ever Confirmed|0 |1 Known to fail||4.7.0, 4.7.2, 4.8.0 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 09:27:30 UTC --- Confirmed, ICEs this way at -O1. Reducing.
[Bug c/54559] [4.7 Regression], ICE in gimplify_expr, at gimplify.c:7592
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54559 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-09-13 09:31:34 UTC --- Created attachment 28185 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28185 gcc48-pr54559.patch Untested fix.
[Bug c/54559] [4.7/4.8 Regression], ICE in gimplify_expr, at gimplify.c:7592
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54559 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P1 Known to work|4.8.0 | Summary|[4.7 Regression], ICE in|[4.7/4.8 Regression], ICE |gimplify_expr, at |in gimplify_expr, at |gimplify.c:7592 |gimplify.c:7592 Known to fail||4.8.0 --- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 09:33:43 UTC --- Trunk also fails for me. P1.
[Bug middle-end/54563] [4.7/4.8 Regression] ICE in redirect_eh_edge_1, at tree-eh.c:2215
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54563 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Keywords||ice-on-valid-code Priority|P3 |P2 Component|driver |middle-end Known to work||4.6.3 Target Milestone|--- |4.7.2 Summary|[4.7][C++11] MacOS 10.8,|[4.7/4.8 Regression] ICE in |ICE in redirect_eh_edge_1, |redirect_eh_edge_1, at |at tree-eh.c:2215 |tree-eh.c:2215 Severity|major |normal --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 09:39:10 UTC --- Reduced testcase: struct vector { ~vector(); }; extern C float powf(float, float); double getSomeDouble(); double x; void dummyFunction() { vector vals; x = powf(getSomeDouble(), 2.); }
[Bug c++/53039] [4.7 Regression] including functional breaks std::is_convertible with template-pack expansion
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53039 --- Comment #18 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 10:31:18 UTC --- Jason, are we still considering backporting something? It would be great - I find the issue pretty annoying - but it's your call.
[Bug c++/53210] warning for data member initialized with itself should be in -Wall
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53210 --- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 10:37:30 UTC --- Thus, Manuel, I suppose you still consider your patchlet pretty obvious? I would be willing to test and tweak the testsuite and submit and resolve this.
[Bug libmudflap/12310] [tree-ssa] libmudflap fails to build on mips-sgi-IRIX6.5
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12310 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED CC||steven at gcc dot gnu.org Resolution||WONTFIX --- Comment #13 from Steven Bosscher steven at gcc dot gnu.org 2012-09-13 10:41:59 UTC --- mips-sgi-irix6.5 is no longer supported.
[Bug libmudflap/14118] h8300-elf, avr-elf, m68k-elf ports cannot build libmudflap
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14118 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|SUSPENDED |RESOLVED CC||steven at gcc dot gnu.org Resolution||WONTFIX --- Comment #14 from Steven Bosscher steven at gcc dot gnu.org 2012-09-13 10:43:33 UTC --- This won't be fixed for generic *-elf targets.
[Bug libmudflap/16454] [meta-bug] tracking bug for libmudflap build problems
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16454 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Bug 16454 depends on bug 14118, which changed state. Bug 14118 Summary: h8300-elf, avr-elf, m68k-elf ports cannot build libmudflap http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14118 What|Old Value |New Value Status|SUSPENDED |RESOLVED Resolution||WONTFIX --- Comment #4 from Steven Bosscher steven at gcc dot gnu.org 2012-09-13 10:44:39 UTC --- .
[Bug libmudflap/16454] [meta-bug] tracking bug for libmudflap build problems
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16454 Steven Bosscher steven at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Bug 16454 depends on bug 14118, which changed state. Bug 14118 Summary: h8300-elf, avr-elf, m68k-elf ports cannot build libmudflap http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14118 What|Old Value |New Value Status|SUSPENDED |RESOLVED Resolution||WONTFIX --- Comment #4 from Steven Bosscher steven at gcc dot gnu.org 2012-09-13 10:44:39 UTC --- .
[Bug target/54564] New: [4.8 Regression
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54564 Bug #: 54564 Summary: [4.8 Regression Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org
[Bug c++/52806] zero as null pointer constant in C++98 mode
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52806 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #8 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 11:03:05 UTC --- Closing.
[Bug target/54564] [4.8 Regression
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54564 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID --- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 11:04:40 UTC --- Unintended, I suppose ;)
[Bug target/54564] [4.8 Regression
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54564 --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-09-13 11:12:40 UTC --- Seems that starting with http://gcc.gnu.org/viewcvs?root=gccview=revrev=190492 some fma tests fail: FAIL: gcc.target/i386/fma-fmaddXX.c execution test FAIL: gcc.target/i386/fma-fmsubXX.c execution test FAIL: gcc.target/i386/fma-fnmaddXX.c execution test FAIL: gcc.target/i386/fma-fnmsubXX.c execution test The bug seems to be in the fmai_vmfmadd_mode expander and following patterns. (match_dup 0) in the expander for the input operand that provides the vector elts other than lowest is definitely wrong, the first operand to the expander is the destination register, very likely uninitialized pseudo that is only going to be initialized by that vfma*s{s,d} insn. That means that the high elements of the result of _mm_f{,n}m{add,sub}_s{s,d} are pretty much garbage. The question is what the high elements of the result are supposed to be, the intrinsics aren't very well documented. Are the high elements supposed to contain the high elements of the first argument of the intrinsics? I'd assume so. But then it must be (match_dup 1) in the expander, and we need to rule out the last alternative from the patterns. Also the question is about _mm_fnm{add_sub}_s{s,d} - those currently negate the first operand, thus it would be pretty random what gets in the high elements. Shouldn't we negate the second argument instead?
[Bug target/54564] [4.8 Regression] Broken __builtin_ia32_vfmadds[sd]3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54564 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|NEW Last reconfirmed||2012-09-13 Resolution|INVALID | Target Milestone|--- |4.7.2 Summary|[4.8 Regression |[4.8 Regression] Broken ||__builtin_ia32_vfmadds[sd]3 Ever Confirmed|0 |1
[Bug tree-optimization/54565] New: pass_update_address_taken before forwprop1 for vectors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54565 Bug #: 54565 Summary: pass_update_address_taken before forwprop1 for vectors Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: gli...@gcc.gnu.org Created attachment 28186 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28186 IRC log Hello, during forwprop1, some of the optimizations for vectors fail because some vectors appear as PARM_DECL or such instead of SSA_NAME. An example is forwprop-22.c where the code does detect that {v[0],v[1]} is just v, but v is a PARM_DECL so it just gives up. Before forwprop2, something (fre?) changes it to an SSA_NAME and the optimization then works. Following some advice by pinskia and stevenb on IRC (log attached), I tried adding pass_update_address_taken right before forwprop1 and it did allow the optimization to happen in forwprop1. The log also contains an argument by pinskia that doing optimizations in forwprop1 can help a bit make better inlining decisions, and some later comments by richi.
[Bug target/54564] [4.8 Regression] Broken __builtin_ia32_vfmadds[sd]3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54564 --- Comment #3 from Yukhin Kirill kirill.yukhin at intel dot com 2012-09-13 11:57:35 UTC --- Fails also occur on real HW.
[Bug c++/53210] warning for data member initialized with itself should be in -Wall
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53210 --- Comment #4 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-09-13 12:05:49 UTC --- (In reply to comment #3) Thus, Manuel, I suppose you still consider your patchlet pretty obvious? I would be willing to test and tweak the testsuite and submit and resolve this. Either that or change the warning to use OPT_Winit_self. But that makes less sense to me because Winit-selft has a very specific purpose, to override that work-around used by GCC to silence Wuninitialized warnings, which does not apply in this case. Thanks for taking care of this.
[Bug target/54564] [4.8 Regression] Broken __builtin_ia32_vfmadds[sd]3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54564 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-09-13 12:07:28 UTC --- Created attachment 28187 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28187 gcc48-pr54564.patch Very lightly tested fix (just make check-gcc RUNTESTFLAGS='--target_board=valgrind-sim/-m64 i386.exp=\*fma\*' with valgrind that supports fma). It is unfortunate that we don't generate the vf{,n}madd231s{s,d} insns any longer, but I don't see how that would be possible, because the intrinsic (as the testcases for it show) really wants to put the high elements of the first argument into the destination, merged with the fma result. The insns are barely useful for anything else than the intrinsic, normal code would either use the scalar insn that ignores the higher elements, or full vector version, so IMHO this isn't a big deal.
[Bug fortran/54556] [4.8 Regression] Marking implicitly pure variables as DECL_PURE_P leads to wrong code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54556 --- Comment #11 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 2012-09-13 12:31:03 UTC --- (In reply to comment #10) Draft patch (replaces the one in comment 9): --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -13567,6 +13572,5 @@ gfc_impure_variable (gfc_symbol *sym) proc = sym-ns-proc_name; - if (sym-attr.dummy gfc_pure (proc) -((proc-attr.subroutine sym-attr.intent == INTENT_IN) - || -proc-attr.function)) + if (sym-attr.dummy + ((proc-attr.subroutine sym-attr.intent == INTENT_IN) + || proc-attr.function)) return 1; this one fixes the error seen with CP2K.
[Bug middle-end/54563] [4.7/4.8 Regression] ICE in redirect_eh_edge_1, at tree-eh.c:2215
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54563 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added CC||wschmidt at gcc dot gnu.org --- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2012-09-13 12:40:26 UTC --- It is caused by revision 174196: http://gcc.gnu.org/ml/gcc-cvs/2011-05/msg00977.html
[Bug c++/50025] [DR 1288] C++0x initialization syntax doesn't work for class members of reference type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50025 --- Comment #9 from Uenal Mutlu temp78593 at mutluit dot com 2012-09-13 12:44:44 UTC --- Created attachment 28188 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28188 Testcase for Bug error: invalid initialization of non-const reference of type ‘std::istream Mysterious compiler error in line 35 of the attached testcase (test1.cpp); marked there as BUG: test1.cpp:35:45: error: invalid initialization of non-const reference of type ‘std::istream {aka std::basic_istreamchar}’ from an rvalue of type ‘void*’
[Bug target/54566] New: __builtin_shuffle: use psrldq+pslldq+por for rotations
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54566 Bug #: 54566 Summary: __builtin_shuffle: use psrldq+pslldq+por for rotations Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: gli...@gcc.gnu.org Target: x86_64-linux-gnu Hello, this PR is based on those 2 emails: http://gcc.gnu.org/ml/libstdc++/2012-09/msg00048.html http://gcc.gnu.org/ml/libstdc++/2012-09/msg00050.html which say that permutations that are rotations (like {1,2,3,4,5,6,7,0}) should more often be based on the rotation instructions (as in _mm_srli_si128 and _mm_slli_si128). Whether it is better than pshufb is not for me to say, but it could at least help where pshufb is not available. (256 bit AVX2 versions are also possible, although they require an additional lane swap)
[Bug target/54566] __builtin_shuffle: use psrldq+pslldq+por for rotations
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54566 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-09-13 Ever Confirmed|0 |1 Severity|normal |enhancement --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 12:54:40 UTC --- Confirmed.
[Bug tree-optimization/54565] pass_update_address_taken before forwprop1 for vectors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54565 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-09-13 CC||rguenth at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 13:02:33 UTC --- I think I removed it because pass_build_ealias performs it already. It does make sense to do after CCP, but it didn't look profitable before forwprop before it got all the tree-combining things. Thus, confirmed. Moving the TODO from before alias computation to after CCP instead makes sense.
[Bug c++/53210] warning for data member initialized with itself should be in -Wall
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53210 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |paolo.carlini at oracle dot |gnu.org |com Target Milestone|--- |4.8.0 --- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 13:09:17 UTC --- Ok. Your patchlet as-is passes bootstrap and testing, I'm going to send it to gcc-patches and ask if people alternately prefer OPT_Winit_self.
[Bug tree-optimization/54565] pass_update_address_taken before forwprop1 for vectors
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54565 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org |gnu.org | --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 13:09:38 UTC --- Created attachment 28189 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28189 patch Like with this.
[Bug gcov-profile/54487] [4.8 Regression] profiledbootstrap broken by r190952
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487 --- Comment #30 from tejohnson at gcc dot gnu.org 2012-09-13 13:32:45 UTC --- Author: tejohnson Date: Thu Sep 13 13:32:31 2012 New Revision: 191254 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191254 Log: 2012-09-12 Teresa Johnson tejohn...@google.com Backport from mainline. 2012-09-12 Teresa Johnson tejohn...@google.com PR gcov-profile/54487 * configure.ac (HOST_HAS_F_SETLKW): Set based on compile test using F_SETLKW with fcntl. * configure, config.in: Regenerate. Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/config.in branches/gcc-4_7-branch/gcc/configure branches/gcc-4_7-branch/gcc/configure.ac
[Bug other/24724] _Unwind_Backtrace() calls malloc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24724 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|RESOLVED|REOPENED Last reconfirmed||2012-09-13 Resolution|WONTFIX | Ever Confirmed|0 |1 --- Comment #14 from H.J. Lu hjl.tools at gmail dot com 2012-09-13 13:43:42 UTC --- (In reply to comment #13) There are two solutions to this: (1) Make sure your binary provides PT_GNU_EH_FRAME. This is the quickest path through the unwinder, since the table is pre-sorted by the linker. This isn't the problem. (2) Have your malloc detect the recursion and return NULL. This will cause the unwinder to perform a linear search through the unsorted tables. It should not fail due to the fake out-of-memory condition, since it was designed to handle throwing an exception during a true OOM condition. The problem is _Unwind_Find_FDE in unwind-dw2-fde.c calls search_object to find FDE in the registered objects, which is loaded unsorted from .eh_frame section. Can we use .eh_frame_hdr section to load the sorted table directly?
[Bug other/24724] _Unwind_Backtrace() calls malloc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24724 Ian Lance Taylor ian at airs dot com changed: What|Removed |Added CC||ian at airs dot com --- Comment #15 from Ian Lance Taylor ian at airs dot com 2012-09-13 14:06:03 UTC --- On a system whose linker supports --eh-frame-hdr, we will use the version of _Unwind_Find_FDE in unwind-dw2-fde-dip.c. It will override the version in unwind-dw2-fde.c by renaming it via #define. This file is selected by libgcc/config/t-eh-dw2-dip. It will still call the version of _Unwind_Find_FDE, but that function will only look through files registered by __register_frame_info_bases. __register_frame_info_bases is called by crtstuff.c, but it is only called on systems whose linker does not support --eh-frame-hdr. So on what system are you actually seeing a call to qsort? Does that system have a linker that supports --eh-frame-hdr?
[Bug other/24724] _Unwind_Backtrace() calls malloc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24724 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||WONTFIX --- Comment #16 from H.J. Lu hjl.tools at gmail dot com 2012-09-13 14:20:21 UTC --- It is an Android target bug.
[Bug debug/54567] New: Incomplete PT_GNU_EH_FRAME support for Android
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54567 Bug #: 54567 Summary: Incomplete PT_GNU_EH_FRAME support for Android Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com CC: pavel.v.chu...@gmail.com Revision 186788: http://gcc.gnu.org/ml/gcc-cvs/2012-04/msg00740.html defines USE_PT_GNU_EH_FRAME for BIONIC. But it misses USE_PT_GNU_EH_FRAME in crtstuff.c: crtstuff.c:# define USE_PT_GNU_EH_FRAME crtstuff.c:# define USE_PT_GNU_EH_FRAME crtstuff.c:# define USE_PT_GNU_EH_FRAME crtstuff.c:# define USE_PT_GNU_EH_FRAME crtstuff.c:#if defined(EH_FRAME_SECTION_NAME) !defined(USE_PT_GNU_EH_FRAME) We should have a single place to define USE_PT_GNU_EH_FRAME to avoid the problem like this.
[Bug debug/54568] New: Unused codes in unwind-dw2-fde.c on PT_GNU_EH_FRAME targets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54568 Bug #: 54568 Summary: Unused codes in unwind-dw2-fde.c on PT_GNU_EH_FRAME targets Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com From http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24724#c15 -- On a system whose linker supports --eh-frame-hdr, we will use the version of _Unwind_Find_FDE in unwind-dw2-fde-dip.c. It will override the version in unwind-dw2-fde.c by renaming it via #define. This file is selected by libgcc/config/t-eh-dw2-dip. It will still call the version of _Unwind_Find_FDE, but that function will only look through files registered by __register_frame_info_bases. __register_frame_info_bases is called by crtstuff.c, but it is only called on systems whose linker does not support --eh-frame-hdr. -- On PT_GNU_EH_FRAME targets, even __register_frame_info_bases isn't defined/used, we still include unwind-dw2-fde.c and call its _Unwind_Find_FDE as _Unwind_Find_registered_FDE. Should we skip the whole thing?
[Bug c++/54569] New: Compiling code with -O3 results to segfault in MAME/MESS binary
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54569 Bug #: 54569 Summary: Compiling code with -O3 results to segfault in MAME/MESS binary Classification: Unclassified Product: gcc Version: 4.7.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: agar...@igalia.com Created attachment 28190 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28190 Preprocessed source file Debian bug: http://bugs.debian.org/686645 MAME / MESS segfault when compiled with -O3 using GCC 4.7.1. The problem doesn't seem to happen with GCC 4.7 GCC version: Target: i486-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.1-8' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu gcc version 4.7.1 (Debian 4.7.1-8) Command line that triggers the bug: gcc -DCRLF=2 -DINLINE=static inline -DLSB_FIRST -DNDEBUG -DUSE_SYSTEM_JPEGLIB -DSDLMAME_SDL2=0 -DDISTRO=generic -DSDLMAME_ARCH=-march=pentium2 -DSYNC_IMPLEMENTATION=tc -DSDLMAME_UNIX -DUSE_OPENGL=1 -DUSE_DISPATCH_GL=1 -DSDLMAME_X11 -DNATIVE_DRC=drcbe_x86 -pipe -O3 -fno-strict-aliasing -march=pentium2 -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strings -Wno-sign-compare -Wno-conversion -DINI_PATH=/etc/mess -D_GNU_SOURCE=1 -D_REENTRANT -m32 -pthread -pthread -Isrc/mess -Iobj/sdl/mess/layout -Isrc/emu -Iobj/sdl/emu -Iobj/sdl/emu/layout -Isrc/lib/util -Isrc/lib -Isrc/osd -Isrc/osd/sdl -Isrc/debug -include src/osd/sdl/sdlprefix.h -I/usr/include -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gconf/2 -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/X11/include -I/usr/X11R6/include -I/usr/openwin/include -Isrc/mame -Iobj/sdl/mame/layout -Isrc/mess/osd -Isrc/mess/osd/sdl -Isrc/mess/tools -Isrc/mess/tools/imgtool -Isrc/mess/tools/castool -Isrc/mess/tools/floptool -x c++ -std=gnu++98 -Woverloaded-virtual -c src/emu/ioport.c -o obj/sdl/emu/ioport.o (no compiler output). The problem disappears if the file is compiled without -O3 or with -O3 -fno-ipa-cp-clone. It also disappears if you remove the '__attribute__((optimize(O0)))' line from the source file. You can see a few more details -including a backtrace- in the Debian bug report (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686645#60).
[Bug c++/51662] Temporary objects gets garbage collected in cc1plus
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51662 --- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 14:52:42 UTC --- Have you had a chance to test the fix?
[Bug fortran/54556] [4.8 Regression] Marking implicitly pure variables as DECL_PURE_P leads to wrong code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54556 --- Comment #12 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 14:57:45 UTC --- Author: burnus Date: Thu Sep 13 14:57:38 2012 New Revision: 191259 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191259 Log: 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54556 * resolve.c (resolve_formal_arglist): Allow VALUE arguments with implicit_pure. (gfc_impure_variable): Don't check gfc_pure such that the function also works for gfc_implicit_pure procedures. 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54556 * gfortran.dg/implicit_pure_3.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/implicit_pure_3.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/54570] New: [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54570 Bug #: 54570 Summary: [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: rgue...@gcc.gnu.org I broke it by making early FRE more reliably figure out address equivalences. extern void abort (void); union A { int a1; char a2[3]; }; int main() { union A *a = __builtin_malloc (212); if (__builtin_object_size (a-a1, 1) != 4 || __builtin_object_size (a-a2, 1) != 212) abort (); return 0; } Would break in similar ways with struct { int a[]; } a; and a vs. a.a.
[Bug c++/54511] [4.6/4.7/4.8 Regression] internal compiler error: in make_decl_rtl, at varasm.c:1147
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54511 --- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:13:23 UTC --- Author: jason Date: Thu Sep 13 15:13:08 2012 New Revision: 191260 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191260 Log: PR c++/54511 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P. Added: branches/gcc-4_6-branch/gcc/testsuite/g++.dg/template/anonunion2.C Modified: branches/gcc-4_6-branch/gcc/cp/ChangeLog branches/gcc-4_6-branch/gcc/cp/pt.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
[Bug c++/53836] [4.7/4.8 Regression] ICE: unexpected expression of kind template_parm_index
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53836 --- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:13:40 UTC --- Author: jason Date: Thu Sep 13 15:13:24 2012 New Revision: 191261 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191261 Log: PR c++/53836 * pt.c (value_dependent_expression_p): A TREE_LIST initializer must be dependent. Added: trunk/gcc/testsuite/g++.dg/template/init10.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog
[Bug c++/54511] [4.6/4.7/4.8 Regression] internal compiler error: in make_decl_rtl, at varasm.c:1147
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54511 --- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:13:23 UTC --- Author: jason Date: Thu Sep 13 15:13:08 2012 New Revision: 191260 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191260 Log: PR c++/54511 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P. Added: branches/gcc-4_6-branch/gcc/testsuite/g++.dg/template/anonunion2.C Modified: branches/gcc-4_6-branch/gcc/cp/ChangeLog branches/gcc-4_6-branch/gcc/cp/pt.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog --- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:14:03 UTC --- Author: jason Date: Thu Sep 13 15:13:45 2012 New Revision: 191262 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191262 Log: PR c++/54511 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P. Added: trunk/gcc/testsuite/g++.dg/template/anonunion2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog
[Bug c++/53839] [4.7/4.8 Regression] [C++11] internal compiler error: in adjust_temp_type, at cp/semantics.c:6391
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53839 --- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:14:18 UTC --- Author: jason Date: Thu Sep 13 15:14:08 2012 New Revision: 191263 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191263 Log: PR c++/53839 * semantics.c (cxx_eval_indirect_ref): If we aren't looking for an address, make sure the value is constant. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-temp1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/semantics.c trunk/gcc/testsuite/ChangeLog
[Bug c++/54511] [4.6/4.7/4.8 Regression] internal compiler error: in make_decl_rtl, at varasm.c:1147
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54511 --- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:14:03 UTC --- Author: jason Date: Thu Sep 13 15:13:45 2012 New Revision: 191262 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191262 Log: PR c++/54511 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P. Added: trunk/gcc/testsuite/g++.dg/template/anonunion2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog --- Comment #7 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:15:06 UTC --- Author: jason Date: Thu Sep 13 15:14:49 2012 New Revision: 191265 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191265 Log: PR c++/54511 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/anonunion2.C Modified: branches/gcc-4_7-branch/gcc/cp/ChangeLog branches/gcc-4_7-branch/gcc/cp/pt.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
[Bug c++/53836] [4.7/4.8 Regression] ICE: unexpected expression of kind template_parm_index
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53836 --- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:13:40 UTC --- Author: jason Date: Thu Sep 13 15:13:24 2012 New Revision: 191261 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191261 Log: PR c++/53836 * pt.c (value_dependent_expression_p): A TREE_LIST initializer must be dependent. Added: trunk/gcc/testsuite/g++.dg/template/init10.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog --- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:14:41 UTC --- Author: jason Date: Thu Sep 13 15:14:27 2012 New Revision: 191264 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191264 Log: PR c++/53836 * pt.c (value_dependent_expression_p): A TREE_LIST initializer must be dependent. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/init10.C Modified: branches/gcc-4_7-branch/gcc/cp/ChangeLog branches/gcc-4_7-branch/gcc/cp/pt.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
[Bug c++/53839] [4.7/4.8 Regression] [C++11] internal compiler error: in adjust_temp_type, at cp/semantics.c:6391
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53839 --- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:14:18 UTC --- Author: jason Date: Thu Sep 13 15:14:08 2012 New Revision: 191263 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191263 Log: PR c++/53839 * semantics.c (cxx_eval_indirect_ref): If we aren't looking for an address, make sure the value is constant. Added: trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-temp1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/semantics.c trunk/gcc/testsuite/ChangeLog --- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:15:22 UTC --- Author: jason Date: Thu Sep 13 15:15:06 2012 New Revision: 191266 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191266 Log: PR c++/53839 * semantics.c (cxx_eval_indirect_ref): If we aren't looking for an address, make sure the value is constant. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/cpp0x/constexpr-temp1.C Modified: branches/gcc-4_7-branch/gcc/cp/ChangeLog branches/gcc-4_7-branch/gcc/cp/semantics.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
[Bug tree-optimization/54570] [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54570 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org Target Milestone|--- |4.8.0 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 15:15:31 UTC --- We talked about disabling SCCVNs offset-based field VN here: case COMPONENT_REF: /* The field decl is enough to unambiguously specify the field, a matching type is not necessary and a mismatching type is always a spurious difference. */ temp.type = NULL_TREE; temp.op0 = TREE_OPERAND (ref, 1); temp.op1 = TREE_OPERAND (ref, 2); { tree this_offset = component_ref_field_offset (ref); if (this_offset ... thus keep temp.off == -1 or adjust the equality function.
[Bug tree-optimization/54570] [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54570 Richard Guenther rguenth at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org Target Milestone|--- |4.8.0 --- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 15:15:31 UTC --- We talked about disabling SCCVNs offset-based field VN here: case COMPONENT_REF: /* The field decl is enough to unambiguously specify the field, a matching type is not necessary and a mismatching type is always a spurious difference. */ temp.type = NULL_TREE; temp.op0 = TREE_OPERAND (ref, 1); temp.op1 = TREE_OPERAND (ref, 2); { tree this_offset = component_ref_field_offset (ref); if (this_offset ... thus keep temp.off == -1 or adjust the equality function. --- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-09-13 15:17:10 UTC --- And introducing a global flag whether any __builtin_object_size calls where in the code and not pessimize opts if not.
[Bug c++/54511] [4.6/4.7/4.8 Regression] internal compiler error: in make_decl_rtl, at varasm.c:1147
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54511 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:14:03 UTC --- Author: jason Date: Thu Sep 13 15:13:45 2012 New Revision: 191262 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191262 Log: PR c++/54511 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P. Added: trunk/gcc/testsuite/g++.dg/template/anonunion2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog --- Comment #7 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:15:06 UTC --- Author: jason Date: Thu Sep 13 15:14:49 2012 New Revision: 191265 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191265 Log: PR c++/54511 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/anonunion2.C Modified: branches/gcc-4_7-branch/gcc/cp/ChangeLog branches/gcc-4_7-branch/gcc/cp/pt.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog --- Comment #8 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:29:12 UTC --- Fixed for 4.6.4.
[Bug c++/53839] [4.7/4.8 Regression] [C++11] internal compiler error: in adjust_temp_type, at cp/semantics.c:6391
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53839 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED CC||jason at gcc dot gnu.org Resolution||FIXED --- Comment #7 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:30:14 UTC --- Fixed for 4.7.2.
[Bug c++/53836] [4.7/4.8 Regression] ICE: unexpected expression of kind template_parm_index
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53836 Jason Merrill jason at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED CC||jason at gcc dot gnu.org Resolution||FIXED --- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:13:40 UTC --- Author: jason Date: Thu Sep 13 15:13:24 2012 New Revision: 191261 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191261 Log: PR c++/53836 * pt.c (value_dependent_expression_p): A TREE_LIST initializer must be dependent. Added: trunk/gcc/testsuite/g++.dg/template/init10.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog --- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:14:41 UTC --- Author: jason Date: Thu Sep 13 15:14:27 2012 New Revision: 191264 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191264 Log: PR c++/53836 * pt.c (value_dependent_expression_p): A TREE_LIST initializer must be dependent. Added: branches/gcc-4_7-branch/gcc/testsuite/g++.dg/template/init10.C Modified: branches/gcc-4_7-branch/gcc/cp/ChangeLog branches/gcc-4_7-branch/gcc/cp/pt.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog --- Comment #7 from Jason Merrill jason at gcc dot gnu.org 2012-09-13 15:30:24 UTC --- Fixed for 4.7.2.
[Bug debug/54568] Unused codes in unwind-dw2-fde.c on PT_GNU_EH_FRAME targets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54568 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added CC||jakub at redhat dot com --- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-09-13 15:50:08 UTC --- It is needed by crtbeginT.o for -static since PT_GNU_EH_FRAME isn't used for static executables. However, dl_iterate_phdr works fine with libc.a from glibc. Jakub, do you remember why PT_GNU_EH_FRAME isn't used on static executables?
[Bug debug/54568] Unused codes in unwind-dw2-fde.c on PT_GNU_EH_FRAME targets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54568 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-09-13 16:11:12 UTC --- Think about libraries built with older GCC versions or built with older binutils. Those would still call the register routines instead of building .eh_frame_hdr.
[Bug gcov-profile/54487] [4.8 Regression] profiledbootstrap broken by r190952
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487 Jan Hubicka hubicka at gcc dot gnu.org changed: What|Removed |Added CC||hubicka at gcc dot gnu.org --- Comment #31 from Jan Hubicka hubicka at gcc dot gnu.org 2012-09-13 16:17:10 UTC --- Huh, 9 years for sucha nonsence is quite impressive. Thanks for tracking it down! :)
[Bug debug/54568] Unused codes in unwind-dw2-fde.c on PT_GNU_EH_FRAME targets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54568 --- Comment #3 from H.J. Lu hjl.tools at gmail dot com 2012-09-13 16:18:24 UTC --- (In reply to comment #2) Think about libraries built with older GCC versions or built with older binutils. Those would still call the register routines instead of building .eh_frame_hdr. We are talking static executables here. .eh-frame-hdr section is generated by the linker to create static executable and we know --eh-frame-hdr works with the linker. Why shouldn't --eh-frame-hdr work for static executable linked with libraries built with older GCC versions or built with older binutils?
[Bug c/54559] [4.7/4.8 Regression], ICE in gimplify_expr, at gimplify.c:7592
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54559 --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-09-13 16:57:31 UTC --- Author: jakub Date: Thu Sep 13 16:57:15 2012 New Revision: 191270 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191270 Log: PR c/54559 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or COMPLEX_TYPE with in_late_binary_op set temporarily to true. * gcc.c-torture/compile/pr54559.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr54559.c Modified: trunk/gcc/c/ChangeLog trunk/gcc/c/c-typeck.c trunk/gcc/testsuite/ChangeLog
[Bug c/54559] [4.7/4.8 Regression], ICE in gimplify_expr, at gimplify.c:7592
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54559 --- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2012-09-13 17:04:59 UTC --- Author: jakub Date: Thu Sep 13 17:04:44 2012 New Revision: 191271 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191271 Log: PR c/54559 * c-typeck.c (c_finish_return): Do convert to BOOLEAN_TYPE or COMPLEX_TYPE with in_late_binary_op set temporarily to true. * gcc.c-torture/compile/pr54559.c: New test. Added: branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/compile/pr54559.c Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/c-typeck.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
[Bug libstdc++/52015] std::to_string does not work under MinGW
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015 Lukas Dürrenberger expl0i...@my-gate.net changed: What|Removed |Added CC||expl0i...@my-gate.net --- Comment #8 from Lukas Dürrenberger expl0i...@my-gate.net 2012-09-13 17:31:13 UTC --- As mentioned before this bug is still active in GCC 4.7.0. The issue got additionally mentioned in the MinGW bug tracker: https://sourceforge.net/tracker/?func=detailatid=102435aid=3413241group_id=2435 There's a possible patch for it at: http://tehsausage.com/mingw-to-string Since it's not clear how long that website will be up, I'll post it here again: __ 24 August 2012, 11:16 UTC This patch enables the following list of C++11 functions and templates in the std namespace: stoi, stol, stoul, stoll, stof, stod, stold, to_string, to_wstring This assumes you are using the official MinGW distribution. If you are applying this patch to a version of MinGW GCC later than 4.7, you should examine and apply the patches rather than using the zip file. * Download mingw-to-string-gcc47.zip which contains three patched header files. (Original patches: wchar.h, stdio.h, os_defines.h) * Copy wchar.h and stdio.h from the include directory in the zip file to the following directory (overwrite): C:\mingw\include (replace C:\mingw\ with the appropriate directory) * Copy os_defines.h to the following directory (overwrite): C:\mingw\lib\gcc\mingw32\4.7.0\include\c++\mingw32\bits (replace C:\mingw\ with the appropriate directory) (replace 4.7.0 with the correct version number) Author: Julian Smythe
[Bug libstdc++/52015] std::to_string does not work under MinGW
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015 --- Comment #9 from Lukas Dürrenberger expl0i...@my-gate.net 2012-09-13 17:33:51 UTC --- Created attachment 28191 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28191 Enabling string conversion functions in MinGW Patch from: http://tehsausage.com/mingw-to-string
[Bug fortran/54556] [4.8 Regression] Marking implicitly pure variables as DECL_PURE_P leads to wrong code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54556 --- Comment #13 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 18:10:13 UTC --- Author: burnus Date: Thu Sep 13 18:10:04 2012 New Revision: 191275 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191275 Log: 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54556 * resolve.c (resolve_formal_arglist): Allow VALUE arguments with implicit_pure. (gfc_impure_variable): Don't check gfc_pure such that the function also works for gfc_implicit_pure procedures. 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54556 * gfortran.dg/implicit_pure_3.f90: New. Added: branches/gcc-4_7-branch/gcc/testsuite/gfortran.dg/implicit_pure_3.f90 Modified: branches/gcc-4_7-branch/gcc/fortran/ChangeLog branches/gcc-4_7-branch/gcc/fortran/resolve.c branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
[Bug fortran/54556] [4.8 Regression] Marking implicitly pure variables as DECL_PURE_P leads to wrong code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54556 --- Comment #14 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 18:16:01 UTC --- Author: burnus Date: Thu Sep 13 18:15:52 2012 New Revision: 191276 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191276 Log: 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54556 * resolve.c (resolve_formal_arglist): Allow VALUE arguments with implicit_pure. (gfc_impure_variable): Don't check gfc_pure such that the function also works for gfc_implicit_pure procedures. 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54556 * gfortran.dg/implicit_pure_3.f90: New. Added: branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/implicit_pure_3.f90 Modified: branches/gcc-4_6-branch/gcc/fortran/ChangeLog branches/gcc-4_6-branch/gcc/fortran/resolve.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
[Bug fortran/53306] [4.6/4.7/4.8 Regression] ICE on invalid 'array(*) =' statement
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53306 --- Comment #7 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 18:19:29 UTC --- Author: burnus Date: Thu Sep 13 18:19:22 2012 New Revision: 191277 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191277 Log: 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54225 PR fortran/53306 * array.c (match_subscript, gfc_match_array_ref): Fix diagnostic of coarray's '*'. 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54225 PR fortran/53306 * gfortran.dg/coarray_10.f90: Update dg-error. * gfortran.dg/coarray_28.f90: New. * gfortran.dg/array_section_3.f90: New. Added: branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/array_section_3.f90 branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/coarray_28.f90 Modified: branches/gcc-4_6-branch/gcc/fortran/ChangeLog branches/gcc-4_6-branch/gcc/fortran/array.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/coarray_10.f90
[Bug fortran/54225] [4.6/4.7/4.8 Regression] fortran compiler segfault processing ' print *, A(1,*) '
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54225 --- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 18:19:28 UTC --- Author: burnus Date: Thu Sep 13 18:19:22 2012 New Revision: 191277 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191277 Log: 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54225 PR fortran/53306 * array.c (match_subscript, gfc_match_array_ref): Fix diagnostic of coarray's '*'. 2012-09-13 Tobias Burnus bur...@net-b.de PR fortran/54225 PR fortran/53306 * gfortran.dg/coarray_10.f90: Update dg-error. * gfortran.dg/coarray_28.f90: New. * gfortran.dg/array_section_3.f90: New. Added: branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/array_section_3.f90 branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/coarray_28.f90 Modified: branches/gcc-4_6-branch/gcc/fortran/ChangeLog branches/gcc-4_6-branch/gcc/fortran/array.c branches/gcc-4_6-branch/gcc/testsuite/ChangeLog branches/gcc-4_6-branch/gcc/testsuite/gfortran.dg/coarray_10.f90
[Bug debug/49459] attribute((mode(byte))) in a typedef produces wrong debug information
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49459 --- Comment #3 from Paul Koning paul_koning at dell dot com 2012-09-13 18:52:51 UTC --- I spent some time trying to figure this out. The offending code seems to be the prune_unused_types machinery. If there is a reference to a static method, but no other references to parts of the class, then the class is treated as unused. However, the static method does cause the class name to be emitted in the dwarf output. But because of the fact that it is treated as unused, nothing else about the class is emitted. This messes up code that consumes the debug data, because it now looks like the class IS defined there, but most of its substance is missing. This code is sufficiently hard to understand that I'm not likely to get much further. Meanwhile, I noticed a documentation bug: the documentation for -feliminate-unused-debug-types says that this switch is off by default. That is no longer true, it is on by default. If I turn it off, the prune_unused_types machinery is suppressed and I get valid debug output.
[Bug fortran/54556] [4.8 Regression] Marking implicitly pure variables as DECL_PURE_P leads to wrong code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54556 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #15 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 19:03:05 UTC --- FIXED on the trunk - and on the 4.6/4.7 branch. (The bug on the branches is more difficult to trigger.) Thanks for the bug report and the reduced test case. Sorry for the breakage!
[Bug fortran/54225] [4.6/4.7/4.8 Regression] fortran compiler segfault processing ' print *, A(1,*) '
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54225 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #7 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 19:47:18 UTC --- FIXED on the trunk (4.8) and the 4.6 and 4.7 branches; hence, the bug will be fix in the upcoming 4.7.2 release. Thanks for the report!
[Bug fortran/53306] [4.6/4.7/4.8 Regression] ICE on invalid 'array(*) =' statement
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53306 Tobias Burnus burnus at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #8 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 19:47:26 UTC --- FIXED on the trunk (4.8) and the 4.6 and 4.7 branches; hence, the bug will be fix in the upcoming 4.7.2 release. Thanks for the report!
[Bug fortran/54389] [F2003/F2008 difference] PURE functions and pointer dummy arguments / DECL_PURE_P issue
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54389 --- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2012-09-13 19:49:11 UTC --- (In reply to comment #3) This revision causes CP2K to produce wrong results at -O1 and above. That bug has been analysed and fixed, see PR 54556. (In reply to comment #4) Dick Hendrickson asked at j3's mailing list (on 2012-09-05) whether that was intended; no reply so far. Actually, Bob had answered; he reads the standard in the same way as Dick and Ian (cf. comment 0).
[Bug bootstrap/38607] AIX error messages about TOC during build
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38607 David Edelsohn dje at gcc dot gnu.org changed: What|Removed |Added Keywords||wrong-code Status|UNCONFIRMED |NEW URL||http://gcc.gnu.org/ml/gcc-p ||atches/2012-09/msg00532.htm ||l Last reconfirmed||2012-09-13 CC||dje at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #19 from David Edelsohn dje at gcc dot gnu.org 2012-09-13 20:10:17 UTC --- First, this is a warning from the AIX linker, not an error and not a failure. The warning technically is correct but slightly misleading and should not cause problems. When the libstdc++ shared library is created for AIX, all global symbols are exported. AIX does not understand visibility decorations, but GCC uses it to determine if a function will be local to a translation unit, not requiring a nop after the call. Because they symbols are global and exported, the linker complains. GCC -fpic/-fPIC (XLC -qpic) no longer means position independent code, but that the code will be used in a shared library. XLC defaults to -qpic, GCC does not. Changing GCC for AIX to the XLC default causes other problems, so the best solution is to add -fPIC to the link line of shared libraries so that GCC on AIX looks more like GCC on Linux, which is what the patch does. This removes all but one warning, which probably is due to a latent bug in G++ itself.
[Bug debug/49459] attribute((mode(byte))) in a typedef produces wrong debug information
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49459 --- Comment #4 from Paul Koning paul_koning at dell dot com 2012-09-13 21:18:17 UTC --- Sorry, please disregard the previous comment, I put it on the wrong bug.
[Bug debug/54508] Wrong debug information emitted if data members not referenced
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54508 --- Comment #1 from Paul Koning paul_koning at dell dot com 2012-09-13 21:21:58 UTC --- I spent some time trying to figure this out. The offending code seems to be the prune_unused_types machinery. If there is a reference to a static method, but no other references to parts of the class, then the class is treated as unused. However, the static method does cause the class name to be emitted in the dwarf output. But because of the fact that it is treated as unused, nothing else about the class is emitted. This messes up code that consumes the debug data, because it now looks like the class IS defined there, but most of its substance is missing. Meanwhile, I noticed a documentation bug: the documentation for -feliminate-unused-debug-types says that this switch is off by default. That is no longer true, it is on by default. If I turn it off, the prune_unused_types machinery is suppressed and I get valid debug output. Unfortunately, it is also so much larger that my builds run very slowly and some binaries grow by as much as a factor of 5.
[Bug middle-end/54571] New: Missed optimization converting between bit sets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54571 Bug #: 54571 Summary: Missed optimization converting between bit sets Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org When converting a bit set from one domain to another,code such as if (old OLD_X) new |= NEW_X; if (old OLD_Y) new |= NEW_Y; is common. If OLD_X and NEW_X are single bits, then this conversion need not include any conditional code. One can mask out OLD_X and shift it left or right to become NEW_X. Or, vice versa, shift left or right and then mask out NEW_X. Indeed, it's probably preferable to perform the mask with the smaller of OLD_X and NEW_X in order to maximize the possibility of having a valid immediate operand to the logical insn. A test case that would seem to cover the all the cases, including converting logical not to bitwise not, would seem to be int f1(int x, int y) { if (x 1) y |= 1; return y; } int f2(int x, int y) { if (x 1) y |= 2; return y; } int f3(int x, int y) { if (x 2) y |= 1; return y; } int g1(int x, int y) { if (!(x 1)) y |= 1; return y; } int g2(int x, int y) { if (!(x 1)) y |= 2; return y; } int g3(int x, int y) { if (!(x 2)) y |= 1; return y; } I'll also note that on the (presumably) preferred alternatives: int h1(int x, int y) { return (x 1) | y; } int h2(int x, int y) { return ((x 1) 1) | y; } int h3(int x, int y) { return ((x 2) 1) | y; } int k1(int x, int y) { return (~x 1) | y; } int k2(int x, int y) { return ((~x 1) 1) | y; } int k3(int x, int y) { return ((~x 1) 1) | y; } there's some less-than-optimial code generated for k1 and k2.
[Bug target/43168] internal compiler error for xgcc when building gcc for pdp11-unknown-aout
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43168 Paul Koning paul_koning at dell dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to work||4.6.0 Resolution||FIXED --- Comment #2 from Paul Koning paul_koning at dell dot com 2012-09-13 21:25:19 UTC --- As I mentioned, this was fixed a while ago.
[Bug middle-end/54571] Missed optimization converting between bit sets
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54571 Richard Henderson rth at gcc dot gnu.org changed: What|Removed |Added Keywords||missed-optimization Severity|normal |enhancement
[Bug libstdc++/52015] std::to_string does not work under MinGW
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015 --- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 22:14:32 UTC --- Patch should be sent to the gcc-patches (and libstdc++) mailing list (any contributor must have a Copyright assignment on file, of course)
[Bug debug/54568] --eh-frame-hdr should also be enabled for static executable
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54568 H.J. Lu hjl.tools at gmail dot com changed: What|Removed |Added Summary|Unused codes in |--eh-frame-hdr should also |unwind-dw2-fde.c on |be enabled for static |PT_GNU_EH_FRAME targets |executable --- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2012-09-13 22:23:08 UTC --- The old interface is needed for DSO and executable created by the older binutils. However, it has nothing to with -static. Also for Android targets, there is no old DSO.
[Bug fortran/54572] New: Use libbacktrace library
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54572 Bug #: 54572 Summary: Use libbacktrace library Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org CC: j...@gcc.gnu.org Ian has created a shiny libbacktrace libray which should be used to replace the current implementation in libgfortran/runtime/backtrace.c, which uses unwinder and, if available, addr2line. libbacktrace is installed both as host library (i.e. for backtraces of the compiler when an ICE occurs) and as target library, to be used by go and possibly other users (e.g. libgfortran). TODO: a) Enable the building of the target library: --- ./gcc/fortran/config-lang.in.orig 2011-05-10 23:12:01.0 +0200 +++ ./gcc/fortran/config-lang.in2012-09-13 22:06:38.0 +0200 @@ -30 +30 @@ compilers=f951\$(exeext) -target_libs=target-libgfortran +target_libs=target-libgfortran target-libbacktrace b) Add --disable-target-libbacktrace to the toplevel configure to disable libbacktrace; e.g. for our embedded users. (toplevel implies a sync with sourceware; watch out for go which also uses the target library, check that go is still be working without target libbacktrace.) c) Configure check: Check whether the library is available. (See libgfortran/acinclude.m4's LIBGFOR_CHECK_FLOAT128 for some ideas how one can test this.) d) Configure check 2: Check whether BACKTRACE_SUPPORTED is set to 0 (- backtrace-supported.h), in that case, it is also pointless to build the support. e) Replace the current version by calls to libbacktrace. Almost latest version of the patch: http://gcc.gnu.org/ml/gcc-patches/2012-09/msg00806.html Or wait a while and browse libbacktrace/ directly. * backtrace-supported.h contains BACKTRACE_USES_MALLOC and BACKTRACE_SUPPORTED * Available functions are listed in backtrace.h [The current version of libbacktrace only handles ELF+DWARF; one could consider keeping the other version for a while. On the other hand, I assume that other formats will soon be supported.]
[Bug middle-end/54573] New: [4.8 Regression]: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54573 Bug #: 54573 Summary: [4.8 Regression]: gcc.dg/builtin-object-size-8.c execution test Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: h...@gcc.gnu.org CC: rgue...@gcc.gnu.org Host: x86_64-unknown-linux-gnu Target: cris-axis-elf This test previously passed, now it fails. A patch in the revision range (last_known_working:first_known_failing) 191244:191253 exposed or caused this regression. Since then it fails as follows: Running /tmp/hpautotest-gcc0/gcc/gcc/testsuite/gcc.dg/dg.exp ... ... FAIL: gcc.dg/builtin-object-size-8.c execution test The messages in gcc.log says that abort() was called: Executing on host: /tmp/hpautotest-gcc0/cris-elf/gccobj/gcc/xgcc -B/tmp/hpautotest-gcc0/cris-elf/gccobj/gcc/ /tmp/hpaut\ otest-gcc0/gcc/gcc/testsuite/gcc.dg/builtin-object-size-8.c -fno-diagnostics-show-caret -O2 -isystem /tmp/hpautote\ st-gcc0/cris-elf/gccobj/cris-elf/./newlib/targ-include -isystem /tmp/hpautotest-gcc0/gcc/newlib/libc/include -B/tmp/hpa\ utotest-gcc0/cris-elf/gccobj/cris-elf/./libgloss/cris/ -L/tmp/hpautotest-gcc0/cris-elf/gccobj/cris-elf/./libgloss/cris \ -L/tmp/hpautotest-gcc0/gcc/libgloss/cris -B/tmp/hpautotest-gcc0/cris-elf/gccobj/cris-elf/./newlib/ -L/tmp/hpautotest-g\ cc0/cris-elf/gccobj/cris-elf/./newlib -sim3 -lm -o ./builtin-object-size-8.exe(timeout = 300) PASS: gcc.dg/builtin-object-size-8.c (test for excess errors) program stopped with signal 6.^M FAIL: gcc.dg/builtin-object-size-8.c execution test I see this FAIL in messages to gcc-testresults too, for example (x86_64) http://gcc.gnu.org/ml/gcc-testresults/2012-09/msg01239.html and (i686) http://gcc.gnu.org/ml/gcc-testresults/2012-09/msg01225.html so the regression seems universal. Author of only suspect patch in revision range CC:ed.
[Bug debug/54567] Incomplete PT_GNU_EH_FRAME support for Android
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54567 --- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-09-13 22:58:38 UTC --- This is not a real problem for Android since Android doesn't use crt* files from GCC. However it will be nicer to define USE_PT_GNU_EH_FRAME in a single place.
[Bug c++/53210] warning for data member initialized with itself should be in -Wall
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53210 --- Comment #6 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 2012-09-13 23:04:12 UTC --- Author: paolo Date: Thu Sep 13 23:04:04 2012 New Revision: 191284 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191284 Log: 2012-09-13 Paolo Carlini paolo.carl...@oracle.com Manuel López-Ibáñez m...@gcc.gnu.org PR c++/53210 * doc/invoke.texi ([Winit-self]): Document as enabled by -Wall in C++. /c-family 2012-09-13 Paolo Carlini paolo.carl...@oracle.com Manuel López-Ibáñez m...@gcc.gnu.org PR c++/53210 * c.opt ([Winit-self]): Enabled by -Wall in C++. /cp 2012-09-13 Paolo Carlini paolo.carl...@oracle.com Manuel López-Ibáñez m...@gcc.gnu.org PR c++/53210 * init.c (perform_member_init): Use OPT_Winit_self instead of OPT_Wuninitialized. /testsuite 2012-09-13 Paolo Carlini paolo.carl...@oracle.com Manuel López-Ibáñez m...@gcc.gnu.org PR c++/53210 * g++.dg/warn/Winit-self.C: New. Added: trunk/gcc/testsuite/g++.dg/warn/Winit-self.C Modified: trunk/gcc/ChangeLog trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c.opt trunk/gcc/cp/ChangeLog trunk/gcc/cp/init.c trunk/gcc/doc/invoke.texi trunk/gcc/testsuite/ChangeLog
[Bug c++/53210] warning for data member initialized with itself should be in -Wall
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53210 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 23:08:01 UTC --- Done.
[Bug c++/53661] [gcc-4.7/4.8 regression] Wrong narrowing conversion warning with -std=c++11
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53661 --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 23:40:22 UTC --- Manuel, what do you think about this? I see the warning happening because the underlying type of Code is unsigned int.
[Bug c++/53661] [gcc-4.7/4.8 regression] Wrong narrowing conversion warning with -std=c++11
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53661 Paolo Carlini paolo.carlini at oracle dot com changed: What|Removed |Added CC||manu at gcc dot gnu.org --- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-09-13 23:43:01 UTC --- Actually adding Manuel in CC.
[Bug c++/54574] New: G++ accepts parameters with wrong types in parent constructor
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54574 Bug #: 54574 Summary: G++ accepts parameters with wrong types in parent constructor Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: car...@google.com When compiling the following source code, class C { public: C (int* Items[]); }; templateclass T class A : public C { public: A (int Items[]) : C (Items) {// C is called with wrong parameter type, expects int** }; }; int i[5]; Aint yyy(i); Trunk g++ silently accepts it. While clang produces following error message: cursesm.ii:11:7: error: no matching constructor for initialization of 'C' : C (Items) { ^ ~ cursesm.ii:4:3: note: candidate constructor not viable: no known conversion from 'int *' to 'int **' for 1st argument; take the address of the argument with C (int* Items[]); ^ cursesm.ii:1:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'int *' to 'const C' for 1st argument; class C ^ cursesm.ii:10:3: error: constructor for 'Aint' must explicitly initialize the base class 'C' which does not have a default constructor A (int Items[]) ^ cursesm.ii:16:8: note: in instantiation of member function 'Aint::A' requested here Aint yyy(i); ^ cursesm.ii:1:7: note: 'C' declared here class C ^ It also impacts branches 4.6 and 4.7.
[Bug middle-end/54573] [4.8 Regression]: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54573 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||ebotcazou at gcc dot ||gnu.org Resolution||DUPLICATE --- Comment #1 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-09-13 23:55:34 UTC --- . *** This bug has been marked as a duplicate of bug 54570 ***
[Bug tree-optimization/54570] [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54570 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added CC||hp at gcc dot gnu.org --- Comment #3 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-09-13 23:55:35 UTC --- *** Bug 54573 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/54570] [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54570 Eric Botcazou ebotcazou at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-09-13 CC||ebotcazou at gcc dot ||gnu.org Ever Confirmed|0 |1 --- Comment #4 from Eric Botcazou ebotcazou at gcc dot gnu.org 2012-09-13 23:58:36 UTC --- By the duplicate.
[Bug c++/54575] New: ICE with std::vector::insert and -std=c++11
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54575 Bug #: 54575 Summary: ICE with std::vector::insert and -std=c++11 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: bange...@gmail.com The following currently produces an ICE when using -std=c++11: .. #include vector template class DH void foo() { std::vectorunsigned int local_dof_indices; std::vectorunsigned int subdomain_indices; subdomain_indices.insert(subdomain_indices.end(), local_dof_indices.begin(), local_dof_indices.end()); } .. /home/bangerth/bin/gcc-mainline/bin/gcc -v Using built-in specs. COLLECT_GCC=/home/bangerth/bin/gcc-mainline/bin/gcc COLLECT_LTO_WRAPPER=/home/bangerth/bin/gcc-mainline/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../mainline/configure --prefix=/home/bangerth/bin/gcc-mainline --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 4.8.0 20120913 (experimental) [trunk revision 183295] (GCC) /home/bangerth/bin/gcc-mainline/bin/gcc -c -std=c++11 x.cc In file included from /home/bangerth/bin/gcc-mainline/include/c++/4.8.0/vector:65:0, from dofs/dof_tools.cc:1: /home/bangerth/bin/gcc-mainline/include/c++/4.8.0/bits/stl_vector.h: In function 'void foo()': /home/bangerth/bin/gcc-mainline/include/c++/4.8.0/bits/stl_vector.h:1042:9: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in strip_typedefs, at cp/tree.c:1215 typename = std::_RequireInputIter_InputIterator ^ Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions.
[Bug libstdc++/54576] New: [4.8 Regression] random_device isn't protected by _GLIBCXX_USE_C99_STDINT_TR1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54576 Bug #: 54576 Summary: [4.8 Regression] random_device isn't protected by _GLIBCXX_USE_C99_STDINT_TR1 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: hjl.to...@gmail.com include/random has #ifdef _GLIBCXX_USE_C99_STDINT_TR1 #include cstdint // For uint_fast32_t, uint_fast64_t, uint_least32_t #include bits/random.h #include bits/random.tcc #endif // _GLIBCXX_USE_C99_STDINT_TR1 random_device is defined in bits/random.h. But src/c++11/random.cc has #include random ... void random_device::_M_init(const std::string token) { It doesn't check if _GLIBCXX_USE_C99_STDINT_TR1 is defined.
[Bug tree-optimization/54570] [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54570 --- Comment #5 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-09-14 01:03:09 UTC --- (In reply to comment #3) *** Bug 54573 has been marked as a duplicate of this bug. *** Sorry, but bugzilla just didn't find this for me when doing due diligence. Putting builtin-object-size-8.c in the Comment / default choice (contains all of the strings) or choosing contains the string which used to be foolproof, doesn't find anything. I don't know what to do about that. Other similar search strings still find PR:s, like attr-weakref-1.c and PT_GNU_EH_FRAME.
[Bug libstdc++/54577] New: dequeT::erase() still takes iterator instead of const_iterator
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54577 Bug #: 54577 Summary: dequeT::erase() still takes iterator instead of const_iterator Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: thunder...@gmail.com In C++11 mode, deque::erase() should be able to take const_iterator instead of iterator. It's not reflected in bits/deque.tcc yet. Checked 4.7, it's the same. (Line 193 of bits/deque.tcc:) template typename _Tp, typename _Alloc typename deque_Tp, _Alloc::iterator deque_Tp, _Alloc:: erase(iterator __position)
[Bug tree-optimization/54570] [4.8 Regression] FAIL: gcc.dg/builtin-object-size-8.c execution test
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54570 --- Comment #6 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-09-14 01:30:57 UTC --- (In reply to comment #5) Sorry, but bugzilla just didn't find this for me when doing due diligence. Update: now it does. Weird. I guess the database wasn't updated or something. Whatever.
[Bug fortran/54556] [4.8 Regression] Marking implicitly pure variables as DECL_PURE_P leads to wrong code
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54556 --- Comment #16 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 2012-09-14 05:57:51 UTC --- (In reply to comment #15) FIXED on the trunk - and on the 4.6/4.7 branch. Sorry for the breakage! Thank you and other gcc experts for regularly fixing issues quickly and professionally, while steadily improving the quality of the compiler!