[Bug debug/57664] [4.8/4.9 Regression] ICE: in should_move_die_to_comdat, at dwarf2out.c:6750 with -fdebug-types-section and lambda

2013-06-21 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57664

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-21
 CC||mpolacek at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
Confirmed, bisecting now.


[Bug fortran/57663] Arithmetic error with -fPIC -O

2013-06-21 Thread bardeau at iram dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57663

--- Comment #2 from Sebastien Bardeau bardeau at iram dot fr ---
(In reply to Mikael Morin from comment #1)
 (In reply to Sebastien Bardeau from comment #0)
  It seems that the gcc 4.6 branch is still receiving bug fixes, so could you
  have a look?
  
 Unfotunately no; the 4.6 branch has been closed since april.
 See http://gcc.gnu.org/ml/gcc/2013-04/msg00132.html

I missed this, it might be good to add this information on this page:
http://gcc.gnu.org/gcc-4.6/

Is there any chance that someone has a look to this bug? I did not test all
gcc/gfortran versions, so I am 100% sure that this a 4.6-only issue.
Furthermore, ideally I would like to know when it appeared and when it was
fixed, in order to warn my users...

Thank you.


[Bug c/57665] New: cpp: stringification does not work for __GNUC__

2013-06-21 Thread Ulrich.Windl at rz dot uni-regensburg.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57665

Bug ID: 57665
   Summary: cpp: stringification does not work for __GNUC__
   Product: gcc
   Version: 4.3.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: Ulrich.Windl at rz dot uni-regensburg.de

It seems stringification for __GNUC__ and other related numbers does not
work:
Using #__GNUC__ produces # 4 as output, not the expected ``4''.
I tried something like
#define GCC_VERSION #__GNUC__ . #___GNUC_MINOR__ . #__GNUC_PATCHLEVEL
but all I get is stray `#' in program


[Bug fortran/57663] Arithmetic error with -fPIC -O

2013-06-21 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57663

--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 Is there any chance that someone has a look to this bug? 

No, but you can do it yourself.

 I did not test all gcc/gfortran versions, so I am 100% sure that 
 this a 4.6-only issue. Furthermore, ideally I would like to know 
 when it appeared and when it was fixed, in order to warn my users...

Introduced between revisions 167584 (2010-12-08) and 167992 (2010-12-17), fixed
between revisions 171100 (2011-03-17) and 171653 (2011-03-29).


[Bug c/57665] cpp: stringification does not work for __GNUC__

2013-06-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57665

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
1) You didn't attach a testcase

2) GCC 4.3 is unsupported and unmaintained

3) You have the wrong number of underscores: 
#define GCC_VERSION #__GNUC__ . #___GNUC_MINOR__ . #__GNUC_PATCHLEVEL
   ^^^   ^^

4) why are you expecting __GNUC__ to behave differently to this?
#define GNUC 4
#define GNUC_MINOR 3
#define GNUC_PATCHLEVEL 4
#define GCC_VERSION #GNUC . #GNUC_MINOR . #GNUC_PATCHLEVEL
const char* ver = GCC_VERSION;

That's not how the preprocessor works.


[Bug other/57659] Failure in installing documentation of gcc-4.7.2

2013-06-21 Thread ExtraLeveLInSoftware at ntlworld dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57659

--- Comment #2 from Ellis N. Thomas ExtraLeveLInSoftware at ntlworld dot com 
---
Oops...re-used a previous report as a template!
Pls take (sub)sections 6 as 5.

(In reply to Jonathan Wakely from comment #1)
 (In reply to Ellis N. Thomas from comment #0)
  4 Information about the build state
 [...]
  6 Summary of Bugs
 
 What happened to chapter 5? :)
  
  6.2 Extra Information
  
  If extra information about the matters reported above would be of value
  please contact:
  
  ExtraLeveLInSoftware at ntlworld dot com
 
 If someone needs more info I think you can assume they'll ask for it, but
 they'll post responses to Bugzilla, and as the bug reporter you'll
 automatically get an email, so there's no need to give your contact details.

[Bug c/57665] cpp: stringification does not work for __GNUC__

2013-06-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57665

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
This works fine:

#define SJOIN(A,B,C) #A . #B . #C
#define JOIN(A,B,C) SJOIN(A, B, C)
#define GCC_VERSION JOIN(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)


[Bug c++/53211] range-based 'for' expression of type 'const int []' has incomplete type

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53211

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.8.2

--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed for 4.8.2 too.


[Bug libstdc++/57666] New: valarrayT::operator= in c++11 mode does not adapt to size

2013-06-21 Thread thunderliu at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57666

Bug ID: 57666
   Summary: valarrayT::operator= in c++11 mode does not adapt to
size
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: thunderliu at gmail dot com

Non-member operators for valarray returns instance of _Expr (lazy
evaluation?), instead of another valarray. This is non-conforming but
probably not a bug. But if the returned value is assigned to another
valarray, c++11 requires operator= to be size-adapting, but 4.7.2 does not do
that for _Expr.

For example:

#include valarray
extern C int printf(const char *, ...);

int main()
{
typedef std::valarrayint A;
A a(3), b(3), d;
d=a+b;
printf(%d\n, d.size());   // 0, incorrect
d=a;
printf(%d\n, d.size());   // 3, correct
}

(Preprocessed source attached.)


[Bug libstdc++/57666] valarrayT::operator= in c++11 mode does not adapt to size

2013-06-21 Thread thunderliu at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57666

thunderliu at gmail dot com changed:

   What|Removed |Added

 Target||x86_64-redhat-linux

--- Comment #1 from thunderliu at gmail dot com ---
Compile the code with -std=c++0x


[Bug c++/57408] lambda, Variable length arrays, thread, internal compiler error: in expand_expr_real_1, at expr.c:9327

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57408

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|superbem at gmail dot com  |jason at gcc dot gnu.org

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
Jason, at first I thought this one could be a Dup of 55149 but I'm still seeing
it today.


[Bug debug/57667] New: -femit-struct-debug-detailed

2013-06-21 Thread evgeny.gavrin at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57667

Bug ID: 57667
   Summary: -femit-struct-debug-detailed
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
  Assignee: unassigned at gcc dot gnu.org
  Reporter: evgeny.gavrin at hotmail dot com

Created attachment 30331
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30331action=edit
file with direct and indirect calls of structs

-femit-struct-debug-detailed


[Bug c++/57038] Latest libreoffice compilation fails with enabled LTO

2013-06-21 Thread marxin.liska at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57038

--- Comment #26 from Martin Liška marxin.liska at gmail dot com ---
Unit tests error:

Program received signal SIGSEGV, Segmentation fault.
0x2aaab39189ed in ScDocument::CalcAll() () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libsclo.so
(gdb) bt
#0  0x2aaab39189ed in ScDocument::CalcAll() () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libsclo.so
#1  0x2aaab3a77516 in ScDocShell::DoHardRecalc(bool) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libsclo.so
#2  0x2f8df43e in ScFiltersTest::testContentXLS() () from
/ssd/libreoffice/workdir/unxlngx6.pro/LinkTarget/CppunitTest/libtest_sc_filters_test.so
#3  0x2ab8614e in CppUnit::TestCaseMethodFunctor::operator()() const ()
from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#4  0x2ab813b1 in CppUnit::ProtectorChain::ProtectFunctor::operator()()
const () from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#5  0x2c332800 in (anonymous namespace)::Prot::protect(CppUnit::Functor
const, CppUnit::ProtectorContext const) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/unoexceptionprotector.so
#6  0x2ab813b1 in CppUnit::ProtectorChain::ProtectFunctor::operator()()
const () from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#7  0x2ab78016 in CppUnit::DefaultProtector::protect(CppUnit::Functor
const, CppUnit::ProtectorContext const) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#8  0x2ab813b1 in CppUnit::ProtectorChain::ProtectFunctor::operator()()
const () from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#9  0x2ab8125b in CppUnit::ProtectorChain::protect(CppUnit::Functor
const, CppUnit::ProtectorContext const) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#10 0x2ab9073a in CppUnit::TestResult::protect(CppUnit::Functor const,
CppUnit::Test*, std::string const) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#11 0x2ab85c1e in CppUnit::TestCase::run(CppUnit::TestResult*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#12 0x2ab86812 in
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#13 0x2ab8669c in CppUnit::TestComposite::run(CppUnit::TestResult*) ()
from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#14 0x2ab86812 in
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#15 0x2ab8669c in CppUnit::TestComposite::run(CppUnit::TestResult*) ()
from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#16 0x2ab94878 in
CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#17 0x2ab90518 in CppUnit::TestResult::runTest(CppUnit::Test*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#18 0x2ab94ac8 in CppUnit::TestRunner::run(CppUnit::TestResult,
std::string const) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#19 0x004026aa in (anonymous namespace)::ProtectedFixtureFunctor::run()
const ()
#20 0x00402b27 in sal_main() ()
#21 0x0040226b in main ()

Output:
CalcAll called


Program received signal SIGSEGV, Segmentation fault.
0x2aaab390c19d in ScDocument::CalcAll() () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libsclo.so

Source code snippet:
void ScDocument::CalcAll()
{
puts(CalcAll called\n);
ClearLookupCaches();// Ensure we don't deliver zombie data.
puts(CalcAll called2\n);
bool bOldAutoCalc = GetAutoCalc();
puts(CalcAll called3\n);
SetAutoCalc( true );
puts(CalcAll called4\n);
TableContainer::iterator it = maTabs.begin();
puts(CalcAll called5\n);
for (; it != maTabs.end(); ++it)
if (*it)
(*it)-SetDirtyVar();
for (it = maTabs.begin(); it != maTabs.end(); ++it)
if (*it)
(*it)-CalcAll();
puts(CalcAll called6\n);
ClearFormulaTree();
puts(CalcAll called7\n);
SetAutoCalc( bOldAutoCalc );
puts(CalcAll called8\n);
}

Link to dumps:
https://docs.google.com/file/d/0B0pisUJ80pO1OFNEc2h4YWVwa2s/edit?usp=sharing

If you need assembler dumps, I can upload it.

Thanks,
Martin

[Bug debug/57667] -femit-struct-debug-detailed

2013-06-21 Thread evgeny.gavrin at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57667

--- Comment #1 from Evgeny Gavrin evgeny.gavrin at hotmail dot com ---
Created attachment 30332
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30332action=edit
structs declaration


[Bug c++/57402] [4.9 Regression] ICE: in make_decl_rtl, at varasm.c:1147 when initializing variable-sized array

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57402

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-21
 Ever confirmed|0   |1


[Bug c++/57401] 'Conflicting declaration' involving using declaration and dependent name

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57401

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-06-21
 CC||dodji at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
CC-ing Dodji.


[Bug debug/57667] -femit-struct-debug-detailed

2013-06-21 Thread evgeny.gavrin at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57667

--- Comment #2 from Evgeny Gavrin evgeny.gavrin at hotmail dot com ---
Hi!

From the documentation to -femit-struct-debug-detailed:
The value `base' means that the base of name of the file in which the type
declaration appears must match the base of the name of the main compilation
file.

I've created two files test.c and test-nonbase.h. (attached)

So, as I understand, when compiling like gcc-4.7 test.c -O0 -g2
-femit-struct-debug-detailed=ind:ord:base info about structs declared in
test-nonbase.h shouldn't be emitted.

But I can get all debug info on structs declared in test-nonbase.h using gdb:
Starting program: ./gcc-tests/a.out 

Breakpoint 1, main () at test.c:18
18  free(indir_ord);
(gdb) p a
$1 = 5
(gdb) p b
$2 = 98
(gdb) p dir_ord 
$3 = {a = 5, b = 97 'a'}
(gdb) p *indir_ord 
$4 = {a = 10, b = 98 'b'}

Meanwhile, compiling with -femit-struct-debug-detailed=ord:base gdb can't
find the debug info:
Starting program: ./gcc-tests/a.out 

Breakpoint 1, main () at test.c:18
18  free(indir_ord);
(gdb) p dir_ord
$1 = incomplete type
(gdb) p *inddir_ord
No symbol inddir_ord in current context.
(gdb) p *indir_ord
$2 = incomplete type


Let's see the code:
./gcc/opts.c

  51 void
  52 set_struct_debug_option (struct gcc_options *opts, location_t loc,
  53  const char *spec)
  54 {

*

  62   /* Default is to apply to as much as possible. */
  63   enum debug_info_usage usage = DINFO_USAGE_NUM_ENUMS;
  64   int ord = 1, gen = 1;

*

  96   if (usage == DINFO_USAGE_NUM_ENUMS)
  97 {
  98   if (ord)
  99 {
 100   opts-x_debug_struct_ordinary[DINFO_USAGE_DFN] = files;
 101   opts-x_debug_struct_ordinary[DINFO_USAGE_DIR_USE] = files;
 102   opts-x_debug_struct_ordinary[DINFO_USAGE_IND_USE] = files;
 103 }
 104   if (gen)
 105 {
 106   opts-x_debug_struct_generic[DINFO_USAGE_DFN] = files;
 107   opts-x_debug_struct_generic[DINFO_USAGE_DIR_USE] = files;
 108   opts-x_debug_struct_generic[DINFO_USAGE_IND_USE] = files;
 109 }
 110 }
 111   else
 112 {
 113   if (ord)
 114 opts-x_debug_struct_ordinary[usage] = files;
 115   if (gen)
 116 opts-x_debug_struct_generic[usage] = files;
 117 }

This means that first optional parameter shouldn't affect so much. In case it's
omitted debug info should be emitted both for [dir:] and [ind:], but only for
base files.

Two cases:
1) test.c -O0 -g2 -femit-struct-debug-detailed=ind:ord:base

opts-x_debug_struct_ordinary[usage] = files;

2) test.c -O0 -g2 -femit-struct-debug-detailed=ord:base

opts-x_debug_struct_ordinary[DINFO_USAGE_DFN] = files;
opts-x_debug_struct_ordinary[DINFO_USAGE_DIR_USE] = files;
opts-x_debug_struct_ordinary[DINFO_USAGE_IND_USE] = files;


The following -femit-struct-debug-detailed=ind:ord:base means that debug info
should be emitted for structs used indirectly and declared in file that matches
the base name of the compilation file (test.c/test.h).

So, in the particular case, when struct is used indirectly in test.c and
declared in test-nonbase.h - info on structs shouldn't be emitted.

In case of, -femit-struct-debug-detailed=ord:base - it works correctly and
emits nothing.


[Bug libstdc++/57666] valarrayT::operator= in c++11 mode does not adapt to size

2013-06-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57666

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to thunderliu from comment #0)
 Non-member operators for valarray returns instance of _Expr (lazy
 evaluation?), instead of another valarray. This is non-conforming but
 probably not a bug.

26.6.1 [valarray.syn]/3 Any function returning a valarrayT is permitted to
return an object of another type, provided all the const member functions of
valarrayT are also applicable to this type.


[Bug target/57637] Miscompare on 178.galgel in SPEC2000 on arm

2013-06-21 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57637

--- Comment #5 from ktkachov at gcc dot gnu.org ---

 Please try the attached patch. If it works, I will send it for community
 review.

Hi Zhenqiang,

This seems to fix the miscompare on my setup, thanks!
I haven't ran a full regression test on it though, but it seems reasonable at
first glance.

Kyrill


[Bug libstdc++/57666] valarrayT::operator= in c++11 mode does not adapt to size

2013-06-21 Thread thunderliu at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57666

--- Comment #3 from thunderliu at gmail dot com ---
Sorry I missed that. But the remaining (which is the point of this bug) still
stands.

(In reply to Jonathan Wakely from comment #2)
 (In reply to thunderliu from comment #0)
  Non-member operators for valarray returns instance of _Expr (lazy
  evaluation?), instead of another valarray. This is non-conforming but
  probably not a bug.
 
 26.6.1 [valarray.syn]/3 Any function returning a valarrayT is permitted
 to return an object of another type, provided all the const member functions
 of valarrayT are also applicable to this type.


[Bug debug/57664] [4.8/4.9 Regression] ICE: in should_move_die_to_comdat, at dwarf2out.c:6750 with -fdebug-types-section and lambda

2013-06-21 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57664

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Can't really bisect it further due to autoconf version, but it started between
186994 and 187108.


[Bug libstdc++/57666] valarrayT::operator= in c++11 mode does not adapt to size

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57666

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-06-21
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com
 Ever confirmed|0   |1

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Yes, it's easy to fix.


[Bug other/57668] New: Regression in vectorizing memcpy pattern.

2013-06-21 Thread neleai at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57668

Bug ID: 57668
   Summary: Regression in vectorizing memcpy pattern.
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: neleai at seznam dot cz

Hi,
When I ran atached benchmark that test how gcc can optimize byte by byte
memcpy(attached memcpy_byte.c) I got a regression on nehalem and ivy_bridge
architectures.
I ran it by commands ./run machine 2 machine_result

For ivy bridge results between 4.7 and 4.9 are:

memcpyO3-4.7.s
0.66
0.65
0.64
0.64
0.64
memcpyO3-4.9.s
0.74
0.74
0.73
0.74
0.74

Also when I look at assemblies and 4.9 version is excessively large compared to
4.7 one.


[Bug other/57668] Regression in vectorizing memcpy pattern.

2013-06-21 Thread neleai at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57668

--- Comment #1 from Ondrej Bilka neleai at seznam dot cz ---
Created attachment 30333
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30333action=edit
benchmark for memcpy


[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels

2013-06-21 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57631

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

 Target||avr
   Priority|P3  |P5
 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2013-06-21
 CC||gjl at gcc dot gnu.org
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #3 from Georg-Johann Lay gjl at gcc dot gnu.org ---
Would you explain what you are trying to achieve?

You can name the function __vectorFOO or __vector_my_ISR_function or whatever
without raising a warning.


[Bug c/52773] internal error: in replace_pseudos_in, at reload1.c:577

2013-06-21 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52773

--- Comment #7 from Mikael Pettersson mikpe at it dot uu.se ---
Bernd Schmidt has posted a patch for review:
http://gcc.gnu.org/ml/gcc-patches/2013-06/msg01147.html


[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels

2013-06-21 Thread pebbles at riseup dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57631

--- Comment #4 from pebbles at riseup dot net ---
(In reply to Georg-Johann Lay from comment #3)
 Would you explain what you are trying to achieve?

For one thing, I'm coding in C++, so the handlers may be mangled to the wrong
symbols unless I tell the compiler what to name them.  The warning is
misleading at least in this case.

In C++ it's conventional to place symbols inside namespaces or classes over
prefixing them with underscores.  I'm writing a library and would like users to
be able to define the handlers with names and scopes that match the style
conventions of the project.

The __ prefix generally indicates that a symbol should not be used by a library
user, and I'm trying to indicate the opposite.

 You can name the function __vectorFOO or __vector_my_ISR_function or
 whatever without raising a warning.

But that requires reading the source of GCC, which I have begun doing but is
usually not a prerequisite for coding.  The warning should tell me that
straight out.


[Bug c/57669] New: Incorrect floating point values with 32-bit compile

2013-06-21 Thread oliverst at online dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57669

Bug ID: 57669
   Summary: Incorrect floating point values with 32-bit compile
   Product: gcc
   Version: 4.7.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: oliverst at online dot de

Created attachment 30334
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30334action=edit
sample code

The attached sample produces incorrect values with 32-bit. The function, that
produces the incorrect values is part of FLAC 1.2.1. I first ran into the
behavior with the 32-bit version of GCC 4.6.3 by MinGW-w64 and was able to
confirm it with a -m32 cross-compile of GCC 4.7.3 bundled with ubuntu 13.04.
The expected result appears to be the 64-bit one since it matches the values
produced by Visual Studio 2012 32-bit and 64-bit as well as clang 3.3 on ubuntu
13.04.

The expected result is:
6945.132324 4500.032715 1060.377319 -132.546219 95.539162 216.320663 80.951294
-48.548409 -61.090591 36.541431 273.282440 315.549683 100.133156 -48.032295
72.734283 223.127853 

The incorrect result is:
6945.131836 4500.032715 1060.377319 -132.546204 95.539146 216.320633 80.951294
-48.548393 -61.090607 36.541412 273.282410 315.549683 100.133156 -48.032322
72.734268 223.127853 

The information about the Mmingw-w64 compile in question:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/mingw64-w32/bin/../libexec/gcc/i686-w64-mingw32/4.6.3/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: /home/ruben/mingw-w64/src/gcc/configure
--host=i686-w64-mingw32 --build=x86_64-linux-gnu --target=i686-w64-mingw32
--with-sysroot=/home/ruben/mingw-w64/mingw32mingw32/mingw32
--prefix=/home/ruben/mingw-w64/mingw32mingw32/mingw32
--with-gmp=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--with-mpfr=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--with-mpc=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--with-ppl=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--with-cloog=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--enable-cloog-backend=isl --with-host-libstdcxx='-static -lstdc++ -lm'
--enable-shared --enable-static --enable-threads=win32 --enable-plugins
--disable-multilib --enable-languages=c,lto,c++,objc,obj-c++,fortran,java
--enable-libgomp --disable-dw2-exceptions --enable-sjlj-exceptions
--enable-fully-dynamic-string --enable-libstdcxx-time --disable-nls
--disable-werror --enable-checking=release --with-gnu-as --with-gnu-ld
--disable-win32-registry --disable-rpath --disable-werror
--with-libiconv-prefix=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
CFLAGS='-O2 -march=nocona -mtune=core2 -fomit-frame-pointer
-momit-leaf-frame-pointer -fgraphite-identity -floop-interchange -floop-block
-floop-parallelize-all' LDFLAGS= : (reconfigured)
/home/ruben/mingw-w64/src/gcc/configure --host=i686-w64-mingw32
--build=x86_64-linux-gnu --target=i686-w64-mingw32
--with-sysroot=/home/ruben/mingw-w64/mingw32mingw32/mingw32
--prefix=/home/ruben/mingw-w64/mingw32mingw32/mingw32
--with-gmp=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--with-mpfr=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--with-mpc=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--with-ppl=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--with-cloog=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
--enable-cloog-backend=isl --with-host-libstdcxx='-static -lstdc++ -lm'
--enable-shared --enable-static --enable-threads=win32 --enable-plugins
--disable-multilib --enable-libgomp --disable-dw2-exceptions
--enable-sjlj-exceptions --enable-fully-dynamic-string --enable-libstdcxx-time
--disable-nls --enable-checking=release --with-gnu-as --with-gnu-ld
--disable-win32-registry --disable-rpath --disable-werror
--with-libiconv-prefix=/home/ruben/mingw-w64/prereq/i686-w64-mingw32/install
CFLAGS='-O2 -march=nocona -mtune=core2 -fomit-frame-pointer
-momit-leaf-frame-pointer -fgraphite-identity -floop-interchange -floop-block
-floop-parallelize-all' LDFLAGS= build_alias=x86_64-linux-gnu
host_alias=i686-w64-mingw32 target_alias=i686-w64-mingw32
--enable-languages=c,c++,fortran,java,lto,objc,obj-c++ --no-create
--no-recursion
Thread model: win32
gcc version 4.6.3 (GCC) 

The information about the version used on ubuntu:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.7.3-1ubuntu1' --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
--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 

[Bug c++/57408] lambda, Variable length arrays, thread, internal compiler error: in expand_expr_real_1, at expr.c:9327

2013-06-21 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57408

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org ---
The issue here is that this capture is not valid C++1y because an array bound
other than the first one is non-constant.  Current 4.9 gives an error and then
crashes; I'll fix the crash, but it will still be rejected.


[Bug c++/57038] Latest libreoffice compilation fails with enabled LTO

2013-06-21 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57038

--- Comment #27 from Jan Hubicka hubicka at gcc dot gnu.org ---
It is difficult to say why the unit test fails.  Would be possible to run it in
GDB and figure out why it segfaults?
Honza


[Bug c++/57208] Latest chromium compilation fails with enabled LTO

2013-06-21 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208

--- Comment #18 from Jan Hubicka hubicka at gcc dot gnu.org ---
What about trying ulimit -m to increase the number of FDs?  (it requires root)


[Bug c++/57208] Latest chromium compilation fails with enabled LTO

2013-06-21 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208

--- Comment #19 from Jan Hubicka hubicka at gcc dot gnu.org ---
chrome.wpa.000i.cgraph:
_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (OnIOComplete)
@0x7f80e10be980
  Type: function definition analyzed
  Visibility: force_output prevailing_def_ironly
  Address is taken.
  References: 
  Referring: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12DoSendLengthEi/8859587
(addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt11DoSendQueryEi/8859588
(addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt12DoReadLengthEi/8859589
(addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt14DoReadResponseEi/8859590
(addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt5StartERKN4base8CallbackIFviEEE/8859580
(addr)
  Read from file: obj/net/dns/net.dns_transaction.o
  Availability: available
  Function flags:
  Called by: 
  Calls: _ZN3net12_GLOBAL__N_113DnsTCPAttempt6DoLoopEi/8859585 (1.00 per call) 
  Has 1 outgoing edges for indirect calls.

marxin@marxinbox /ssd/chromium-2/src/out/Release $ grep
_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi *.s
chrome.ltrans16.s:leaq   
_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rax
chrome.ltrans29.s:leaq   
_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rsi
chrome.ltrans29.s:leaq   
_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rsi
chrome.ltrans29.s:.type   
_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, @function
chrome.ltrans29.s:_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi:
chrome.ltrans29.s:.size   
_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi,
.-_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi


This actually looks like partitioning problem. I misread the dump ysterday - it
is a local function and it seems that somehow we manage to get referenc eto it
from ltrans16 while it is static to ltrans29.  Can I see .cgraph dump of
ltrans16? If you have -fdump-tree-all dumps (or you can just rebuild ltrans16
with this dump) it should be possible to grep the dumps to work out if the
symbol appears as a result of some constant folding.


[Bug fortran/34928] Extension: volatile common blocks

2013-06-21 Thread bdavis at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34928

--- Comment #5 from Bud Davis bdavis at gcc dot gnu.org ---
As the reporter of this enhancement request, I think it is something that
should be left open.

Low priority, but this was a 'feature' of some f77 compilers in the past.  

Even if no-one ever adds this functionality, those porting old f77 code that
encounter this will be able to see that it is not implemented and they can
infer why it was not added.


[Bug c++/57208] Latest chromium compilation fails with enabled LTO

2013-06-21 Thread marxin.liska at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208

--- Comment #20 from Martin Liška marxin.liska at gmail dot com ---
Link to ltrans16.cgraph dump:
https://docs.google.com/file/d/0B0pisUJ80pO1c0JTTmR5Z1pQb28/edit?usp=sharing

[Bug c++/57038] Latest libreoffice compilation fails with enabled LTO

2013-06-21 Thread marxin.liska at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57038

--- Comment #28 from Martin Liška marxin.liska at gmail dot com ---
Gdb instruction dump of ScDocument::CalcAll, place where SIGSEGV was received
is marked with '', address: 0x2aaab390c19d 

+
B+ ¦0x2aaab390c180 _ZN10ScDocument7CalcAllEv  push   %r15
   
¦
   ¦0x2aaab390c182 _ZN10ScDocument7CalcAllEv+2push   %r14
   
¦
   ¦0x2aaab390c184 _ZN10ScDocument7CalcAllEv+4push   %r13
   
¦
   ¦0x2aaab390c186 _ZN10ScDocument7CalcAllEv+6push   %r12
   
¦
   ¦0x2aaab390c188 _ZN10ScDocument7CalcAllEv+8push   %rbp
   
¦
   ¦0x2aaab390c189 _ZN10ScDocument7CalcAllEv+9mov%rdi,%rbp   
   
¦
   ¦0x2aaab390c18c _ZN10ScDocument7CalcAllEv+12   lea0x21bc66(%rip),%rdi 
  # 0x2aaab3b27df9 
¦
   ¦0x2aaab390c193 _ZN10ScDocument7CalcAllEv+19   push   %rbx
   
¦
   ¦0x2aaab390c194 _ZN10ScDocument7CalcAllEv+20   sub$0x18,%rsp  
   
¦
   ¦0x2aaab390c198 _ZN10ScDocument7CalcAllEv+24   callq  0x2aaab33c8af0
puts@plt 
   
  ¦
  ¦0x2aaab390c19d _ZN10ScDocument7CalcAllEv+29   mov0x1c8(%rbp),%rbx
   
¦
   ¦0x2aaab390c1a4 _ZN10ScDocument7CalcAllEv+36   test   %rbx,%rbx   
   
¦
   ¦0x2aaab390c1a7 _ZN10ScDocument7CalcAllEv+39   je 0x2aaab390c29d
_ZN10ScDocument7CalcAllEv+285
   
  ¦
   ¦0x2aaab390c1ad _ZN10ScDocument7CalcAllEv+45   mov(%rbx),%r12 
   
¦
   ¦0x2aaab390c1b0 _ZN10ScDocument7CalcAllEv+48   mov0x8(%rbx),%rax  
   
¦
   ¦0x2aaab390c1b4 _ZN10ScDocument7CalcAllEv+52   test   %r12,%r12   
   
¦
   ¦0x2aaab390c1b7 _ZN10ScDocument7CalcAllEv+55   je 0x2aaab390c1f5
_ZN10ScDocument7CalcAllEv+117
   
  ¦
   ¦0x2aaab390c1b9 _ZN10ScDocument7CalcAllEv+57   mov(%r12,%rax,8),%r13  
   
¦
   ¦0x2aaab390c1bd _ZN10ScDocument7CalcAllEv+61   test   %r13,%r13   
   
¦
   ¦0x2aaab390c1c0 _ZN10ScDocument7CalcAllEv+64   je 0x2aaab390c1f5
_ZN10ScDocument7CalcAllEv+117
   
  ¦
   ¦0x2aaab390c1c2 

[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels

2013-06-21 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57631

--- Comment #5 from Georg-Johann Lay gjl at gcc dot gnu.org ---
(In reply to pebbles from comment #4)
 (In reply to Georg-Johann Lay from comment #3)
 Would you explain what you are trying to achieve?
 
 For one thing, I'm coding in C++, so the handlers may be mangled to the
 wrong symbols unless I tell the compiler what to name them.  The warning is
 misleading at least in this case.

The ISR macro is defined by AVR-LibC. It adds extern C to ISR if compiled for
C++.  Thus, the handlers are not mangled and names like __vector_num are used
even if compiled for C++.

Moreover, you should not use __vector_num firectly, use the support macros
from avr/io.h and avr/interrupt.h.  They work for C++.  If not, please file a
bug report against AVR-LibC.

 In C++ it's conventional to place symbols inside namespaces or classes over
 prefixing them with underscores.  I'm writing a library and would like users
 to be able to define the handlers with names and scopes that match the style
 conventions of the project.

Don't use __vector_num directly; use defines from AVR-LibC like INT0_vect
etc.  Cf. the AVR-LibC documentation.

 You can name the function __vectorFOO or __vector_my_ISR_function or
 whatever without raising a warning.
 
 But that requires reading the source of GCC, which I have begun doing but is
 usually not a prerequisite for coding.  The warning should tell me that
 straight out.

You should read the documentation of AVR-LibC, of course.  You can add
documentation parts to the GCC documentation if you find it helpful.  However,
users typically read the AVR-LibC manual because ISR and the vector names are
supplyied by AVR-LibC's av/io.h and avr/interrupt.h.


[Bug debug/57667] -femit-struct-debug-detailed

2013-06-21 Thread evgeny.gavrin at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57667

--- Comment #3 from Evgeny Gavrin evgeny.gavrin at hotmail dot com ---
Command to run:
egavrin@debian:~/dev/vd-issues/ld-memory-consumption/gcc-tests$ gcc-4.7 test.c
-O0 -g2 -gdwarf-2 -femit-struct-debug-detailed=ind:ord:base
egavrin@debian:~/dev/vd-issues/ld-memory-consumption/gcc-tests$ gdb ./a.out 
*
(gdb) b 18
Breakpoint 1 at 0x400593: file test.c, line 18.
(gdb) run
Starting program:
/home/egavrin/dev/vd-issues/ld-memory-consumption/gcc-tests/a.out 

Breakpoint 1, main () at test.c:18
18  free(indir_ord);
(gdb) p dir_ord
$1 = {a = 5, b = 97 'a'}
(gdb) p indir_ord
$2 = (struct IND_ORD *) 0x601010
(gdb) p *indir_ord
$3 = {a = 10, b = 98 'b'}
(gdb) 

egavrin@debian:~/dev/vd-issues/ld-memory-consumption/gcc-tests$ gcc-4.7 test.c
-O0 -g2 -gdwarf-2 -femit-struct-debug-detailed=ord:base
egavrin@debian:~/dev/vd-issues/ld-memory-consumption/gcc-tests$ gdb ./a.out 
GNU gdb (GDB) 7.4.1-debian
This GDB was configured as x86_64-linux-gnu.
Reading symbols from
/home/egavrin/dev/vd-issues/ld-memory-consumption/gcc-tests/a.out...done.
(gdb) b 18
Breakpoint 1 at 0x400593: file test.c, line 18.
(gdb) run
Starting program:
/home/egavrin/dev/vd-issues/ld-memory-consumption/gcc-tests/a.out 

Breakpoint 1, main () at test.c:18
18  free(indir_ord);
(gdb) p dir_ord
$1 = incomplete type
(gdb) p indir_ord 
$2 = (struct IND_ORD *) 0x601010
(gdb) p *indir_ord 
$3 = incomplete type


[Bug middle-end/57670] New: Member-pointer calls should not be redirected to builtin_unreachable

2013-06-21 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57670

Bug ID: 57670
   Summary: Member-pointer calls should not be redirected to
builtin_unreachable
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jamborm at gcc dot gnu.org

Created attachment 30335
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30335action=edit
Testcase

We redirect calls to non-functions to builtin_unreachable.  However,
we should not do that for member-pointer calls because there we
pattern-match IL which can use integers to do a VMT lookup.

I'm about to test a simple patch.


[Bug middle-end/57670] Member-pointer calls should not be redirected to builtin_unreachable

2013-06-21 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57670

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-06-21
   Assignee|unassigned at gcc dot gnu.org  |jamborm at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Martin Jambor jamborm at gcc dot gnu.org ---
Mine.


[Bug libstdc++/57666] valarrayT::operator= in c++11 mode does not adapt to size

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57666

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.8.2

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed mainline and 4.8.2.


[Bug c++/17166] Improve diagnostic for empty overload set listing the rejected overloads

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17166

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC|gcc-bugs at gcc dot gnu.org|
  Known to work||4.8.0, 4.9.0
 Resolution|--- |FIXED

--- Comment #12 from Paolo Carlini paolo.carlini at oracle dot com ---
Lately the diagnostic is good.


[Bug c++/57671] New: Compile Error: When declared a pointer const TYPE const *p ; (p is name of pointer)

2013-06-21 Thread vlad94009277 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57671

Bug ID: 57671
   Summary: Compile Error: When  declared a pointer const TYPE
const *p ; (p is name of pointer)
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vlad94009277 at gmail dot com

Compile Error: When declared the pointer const int const *p ;

Actual result:
   error: duplicate ‘const’
   const int const *p ;

expected result: 
   Must be declared the pointer p:

[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels

2013-06-21 Thread pebbles at riseup dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57631

--- Comment #6 from pebbles at riseup dot net ---
You seem to be speaking from an assumption that this warning code should not
change.  Is there a reason for not adding this small patch, which makes gcc
more extendable and accurate?

(In reply to Georg-Johann Lay from comment #5)
 The ISR macro is defined by AVR-LibC. It adds extern C to ISR if compiled
 for C++.  Thus, the handlers are not mangled and names like __vector_num
 are used even if compiled for C++.
 
 Moreover, you should not use __vector_num firectly, use the support macros
 from avr/io.h and avr/interrupt.h.  They work for C++.  If not, please file
 a bug report against AVR-LibC.

extern C does not work inside a class.  I'm glad to file a bug report with
AVR-LibC for this, but generally it is not expected that C macros work inside
classes.  The signal and interrupt attributes are described in the gcc
attribute documentation.  I would like to use them.

I am trying to create a way for unknown code using my library to define event
handlers.  It's true, I can handle this at runtime by calling back to them
from for example INT0_vect, relying on GCC to inline the call if it is known at
compile time.  If it is indeed known, it is more efficient and brings the user
closer to the hardware to call it straight from the interrupt vector table,
which can only be set up by the linker.

Right now gcc restricts my interface specification in such a way that if I
allow code to define a static event handler, and I want it to be an interrupt
in the interrupt vector table, it must be named __vectorABC or declared with
ISR(ABC_vect) and be file scoped.

If things become more complex and this static event handler will be called from
inside another interrupt handler, the ISR(ABC_vect) convention will no longer
work; the interface specification and all code must be updated.  If I can give
the handler a non-AVR-LibC name, then all that needs to change is the attribute
in the header file.  Code becomes maintainable, and self-documenting too.

I can do this right now, gcc just issues a warning if that name does not start
with __vector.

I do really appreciate as many alternative solutions as there are, but I am
actually going to do this, warning or no, because I am trying to both
accurately represent the hardware and abstract it.

  You can name the function __vectorFOO or __vector_my_ISR_function or
  whatever without raising a warning.
 
  But that requires reading the source of GCC, which I have begun doing but is
  usually not a prerequisite for coding.  The warning should tell me that
  straight out.
 
 You should read the documentation of AVR-LibC, of course.  You can add
 documentation parts to the GCC documentation if you find it helpful. 
 However, users typically read the AVR-LibC manual because ISR and the vector
 names are supplyied by AVR-LibC's av/io.h and avr/interrupt.h.

As you state earlier, AVR-LibC does not intend us to be aware of the
__vector_NN naming convention; I don't believe it's mentioned in the docs. 
Solving my problem by artificially prefixing my function names with __vector,
which works but restricts what I can name them in an unpleasant way, involves
finding the warning check in the GCC source to understand that that is a
solution.

This seems like a very small patch that makes GCC more extendable and accurate.
 I am not too attached to these things changing, although I am curious what the
reason is for not considering the patch.


[Bug c/57669] Incorrect floating point values with 32-bit compile

2013-06-21 Thread jtaylor.debian at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57669

Julian Taylor jtaylor.debian at gmail dot com changed:

   What|Removed |Added

 CC||jtaylor.debian at gmail dot com

--- Comment #1 from Julian Taylor jtaylor.debian at gmail dot com ---
looks like expected behavior to me, please read:
http://gcc.gnu.org/wiki/x87note

you may be able to get consistent results by using -mfpmath=sse
e.g. clang will always use amd64 mode even on 32 bit, thus probably the same
result.


[Bug c++/57671] Compile Error: When declared a pointer const TYPE const *p ; (p is name of pointer)

2013-06-21 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57671

Andreas Schwab sch...@linux-m68k.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID
   Severity|blocker |normal

--- Comment #1 from Andreas Schwab sch...@linux-m68k.org ---
Unlike C, C++ does not allow to directly specify a cv-qualifier twice.


[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels

2013-06-21 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57631

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |pebbles at riseup dot 
net

--- Comment #7 from Georg-Johann Lay gjl at gcc dot gnu.org ---
(In reply to pebbles from comment #6)

 This seems like a very small patch that makes GCC more extendable and
 accurate.  I am not too attached to these things changing, although I am
 curious what the reason is for not considering the patch.

You can propose and explain your change in the gcc-patches@ mailing list, of
course.  That is the right place to get changes into the compiler.


[Bug driver/45508] Does adding configure-options for specs-hardcoding make sense?

2013-06-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45508

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 CC||benoit.hudson at gmail dot com

--- Comment #11 from Jonathan Wakely redi at gcc dot gnu.org ---
*** Bug 7957 has been marked as a duplicate of this bug. ***


[Bug target/57669] Incorrect floating point values with 32-bit compile

2013-06-21 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57669

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|c   |target

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org ---
This sounds like bug 323.


[Bug driver/7957] change request: more flexible %D specs directive so no need to set LD_LIBRARY_PATH

2013-06-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=7957

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Andrew Pinski from comment #5)
 I really doubt that we want this option as we have always recommend in
 setting LD_LIBRARY_PATH.

Relying on LD_LIBRARY_PATH can be a liability. The RPATH is evil argument is
mostly based on NFS problems, but if I never allow NFS near my systems then
that argument doesn't stand up.

Users should be able to choose for themselves if they want to use RPATH or
LD_LIBRARY_PATH.

PR 53002 makes it easier to use specs to solve this problem, PR 45508 comment
10 describes a plan that would be equivalent to --with-rpath-in-specs, so
closing this as a dup

*** This bug has been marked as a duplicate of bug 45508 ***


[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels

2013-06-21 Thread pebbles at riseup dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57631

--- Comment #8 from pebbles at riseup dot net ---
(In reply to Georg-Johann Lay from comment #7)
 (In reply to pebbles from comment #6)
 
  This seems like a very small patch that makes GCC more extendable and
  accurate.  I am not too attached to these things changing, although I am
  curious what the reason is for not considering the patch.
 
 You can propose and explain your change in the gcc-patches@ mailing list, of
 course.  That is the right place to get changes into the compiler.

All right, thank you.  I only started trying to make a patch after noticing
what seemed like a bug(?)

I see from patch submission docs I should add testcases as well.  If you have
any more feedback or help, thank you.


[Bug target/57669] Incorrect floating point values with 32-bit compile

2013-06-21 Thread oliverst at online dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57669

--- Comment #3 from Oliver Stoeneberg oliverst at online dot de ---
It's unoptimized code and using -msse -mfpmath=sse fixes it.

But there is another fix:
http://msdn.microsoft.com/en-us/library/vstudio/7t5yh4fd(v=vs.110).aspx

Changing

autoc[coeff] += d * data[sample+coeff];

to

FLAC__real tmp = d * data[sample+coeff];
autoc[coeff] += tmp;

also provides the same results with 32-bit as 64-bit does.


[Bug fortran/34928] Extension: volatile common blocks

2013-06-21 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34928

--- Comment #6 from Dominique d'Humieres dominiq at lps dot ens.fr ---
 As the reporter of this enhancement request, I think it is something 
 that should be left open.

 Low priority, but this was a 'feature' of some f77 compilers in the past. 

G77 does compile the test. 

 Even if no-one ever adds this functionality, those porting old f77 code 
 that encounter this will be able to see that it is not implemented 
 and they can infer why it was not added.

IMO the f77 extensions that have not been already added to gfortran should not
be implemented, but documented in the section

6.2 Extensions not implemented in GNU Fortran

of the manual. I can submit a draft patch for this PR if someone is will to fix
my Frenglish and formatting issues and do the commit.

As for today, there are 738 opened PRs, among them 245 are UNCONFIRMED.


[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels

2013-06-21 Thread pebbles at riseup dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57631

pebbles at riseup dot net changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
   Assignee|pebbles at riseup dot net  |unassigned at gcc dot 
gnu.org

--- Comment #9 from pebbles at riseup dot net ---
I would like to learn to find out if this is a bug and contribute a fix to the
gcc sources.  At the moment building gcc loads my computer for a day, and it is
difficult to develop on.  I plan to pursue this when I am set up better, but if
anybody else ever cares about it they should look at it.

As far as I can tell the patch I attached is good but I haven't turned my test
into a testcase or read the gcc development docs yet.


[Bug c++/57658] ICE in tsubst_copy, at cp/pt.c:12213

2013-06-21 Thread t-gcc-bugzilla at snowelm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57658

--- Comment #3 from Takaki Makino t-gcc-bugzilla at snowelm dot com ---
Created attachment 30336
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30336action=edit
Reduced testcase

Hi Paolo,
Thank you for referring to the useful resource.
Using these tools I've got a reduced version (attached)
I believe this is a valid code.

$ g++-4.9 -std=c++11  testcase.cpp
testcase.cpp: In instantiation of 'XT::f() [with T = int]::lambda()':
testcase.cpp:11:11:   required from 'struct XT::f() [with T =
int]::lambda()'
testcase.cpp:11:9:   required from 'bool XT::f() [with T = int]'
testcase.cpp:16:16:   required from here
testcase.cpp:12:62: internal compiler error: in tsubst_copy, at cp/pt.c:12213
 typename remove_reference  decltype (a) ::type t;
  ^
0x59f7f0 tsubst_copy
../../gcc/cp/pt.c:12213
0x57cee9 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/cp/pt.c:14484
0x59081c tsubst(tree_node*, tree_node*, int, tree_node*)
../../gcc/cp/pt.c:11807
0x59c8fa tsubst_template_args
../../gcc/cp/pt.c:9640
0x59d2fe tsubst_aggr_type
../../gcc/cp/pt.c:9837
0x590a25 tsubst(tree_node*, tree_node*, int, tree_node*)
../../gcc/cp/pt.c:11695
0x5a1581 tsubst_decl
../../gcc/cp/pt.c:10652
0x5913b4 tsubst(tree_node*, tree_node*, int, tree_node*)
../../gcc/cp/pt.c:11101
0x586eef tsubst_expr
../../gcc/cp/pt.c:12931
0x587284 tsubst_expr
../../gcc/cp/pt.c:13070
0x5864b3 tsubst_expr
../../gcc/cp/pt.c:12880
0x587284 tsubst_expr
../../gcc/cp/pt.c:13070
0x584e5b instantiate_decl(tree_node*, int, bool)
../../gcc/cp/pt.c:19112
0x5bcb67 instantiate_class_template_1
../../gcc/cp/pt.c:9018
0x5bcb67 instantiate_class_template(tree_node*)
../../gcc/cp/pt.c:9086
0x647dcb complete_type(tree_node*)
../../gcc/cp/typeck.c:131
0x57dd30 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/cp/pt.c:14581
0x586a12 tsubst_expr
../../gcc/cp/pt.c:13415
0x586f6f tsubst_expr
../../gcc/cp/pt.c:12894
0x5864b3 tsubst_expr
../../gcc/cp/pt.c:12880
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug c++/41437] No access control for classes in template functions

2013-06-21 Thread w.shane.grant at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41437

Shane w.shane.grant at gmail dot com changed:

   What|Removed |Added

 CC||w.shane.grant at gmail dot com

--- Comment #5 from Shane w.shane.grant at gmail dot com ---
This bug still exists for g++ 4.8.1.  Crops up regardless of where the template
function is that tries to access the protected/private member:

class Base { void snarf() {} };

struct Derived : public Base
{
  template class T
  void bar( T  t )
  {
snarf(); // this is incorrectly marked ok
  }
};


[Bug c++/57658] [4.9 Regression] ICE in tsubst_copy, at cp/pt.c:12213

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57658

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|WAITING |NEW
   Target Milestone|--- |4.9.0
Summary|ICE in tsubst_copy, at  |[4.9 Regression] ICE in
   |cp/pt.c:12213   |tsubst_copy, at
   ||cp/pt.c:12213

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com ---
Thank you! Indeed, it looks like a regression present only in mainline.


[Bug target/57631] [patch] spurious warning for avr interrupts with asm labels

2013-06-21 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57631

--- Comment #10 from Georg-Johann Lay gjl at gcc dot gnu.org ---
I can have a look at it, but it might take a month or so until I get back to
this issue.

If I understand correctly, bottom line of what you need is that avr-gcc does
not warn for ISR names that are not of the form __vector*

Maybe a new command line option -W[no-]isr-name or similar is more general? 
The default of the option would be 'on' per default.


[Bug c++/57658] [4.9 Regression] ICE in tsubst_copy, at cp/pt.c:12213

2013-06-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57658

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com ---
Appeared with r197811. CC-ing Jason.


[Bug c/57672] New: va_list fixinclude needed for AIX 5.3 sys/types.h

2013-06-21 Thread chasonr at newsguy dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57672

Bug ID: 57672
   Summary: va_list fixinclude needed for AIX 5.3 sys/types.h
   Product: gcc
   Version: 4.8.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chasonr at newsguy dot com

On AIX 5.3, the system file /usr/include/sys/types.h contains this declaration:

#ifndef_VA_LIST
#define _VA_LIST
typedef char *va_list;
#endif

This conflicts with the fixincluded va_list in stdarg.h.  va_list needs to be
declared as __builtin_va_list.

GCC 4.8.1 already performs other fixincludes for sys/types.h.


[Bug other/53317] Conversion from __int128 to __float128

2013-06-21 Thread jsm28 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53317

Joseph S. Myers jsm28 at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.9.0

--- Comment #5 from Joseph S. Myers jsm28 at gcc dot gnu.org ---
Fixed for 4.9 by:

Author: jsm28
Date: Fri Jun 21 19:08:01 2013
New Revision: 200318

URL: http://gcc.gnu.org/viewcvs?rev=200318root=gccview=rev
Log:
PR other/53317

gcc/testsuite:
* gcc.dg/torture/fp-int-convert-float128-timode-2.c: New test.

libgcc:
* soft-fp/adddf3.c: Update from glibc.
[...]
http://gcc.gnu.org/ml/gcc-cvs/2013-06/msg00752.html


[Bug target/57637] Miscompare on 178.galgel in SPEC2000 on arm

2013-06-21 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57637

Mikael Pettersson mikpe at it dot uu.se changed:

   What|Removed |Added

 CC||mikpe at it dot uu.se

--- Comment #6 from Mikael Pettersson mikpe at it dot uu.se ---
(In reply to zhenqiang.chen from comment #3)
 Created attachment 30330 [details]
 pr57637.patch

This patch breaks Ada bootstrap on x86_64 for me:

/tmp/objdir/./prev-gcc/xgcc -B/tmp/objdir/./prev-gcc/
-B/tmp/install49/x86_64-unknown-linux-gnu/bin/
-B/tmp/install49/x86_64-unknown-linux-gnu/bin/
-B/tmp/install49/x86_64-unknown-linux-gnu/lib/ -isystem
/tmp/install49/x86_64-unknown-linux-gnu/include -isystem
/tmp/install49/x86_64-unknown-linux-gnu/sys-include-c -g -O2 -gtoggle 
-gnatpg  -W -Wall -g -O1 -fno-inline \
 -nostdinc -I- -I. -Iada -I/tmp/gcc-4.9-20130616/gcc/ada
-I/tmp/gcc-4.9-20130616/gcc/ada/gcc-interface
/tmp/gcc-4.9-20130616/gcc/ada/a-except.adb -o ada/a-except.o

raised STORAGE_ERROR : stack overflow or erroneous memory access
make[3]: *** [ada/a-except.o] Error 1
make[3]: Leaving directory `/tmp/objdir/gcc'
make[2]: *** [all-stage2-gcc] Error 2
make[2]: Leaving directory `/tmp/objdir'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/tmp/objdir'
make: *** [bootstrap] Error 2


[Bug fortran/37336] Fortran 2003: Finish derived-type finalization

2013-06-21 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37336

--- Comment #26 from Tobias Burnus burnus at gcc dot gnu.org ---
Author: burnus
Date: Fri Jun 21 21:51:41 2013
New Revision: 200321

URL: http://gcc.gnu.org/viewcvs?rev=200321root=gccview=rev
Log:
2013-06-21  Tobias Burnus  bur...@net-b.de

* trans-array.c (gfc_trans_deferred_array): Call the
finalizer for nonallocatable local variables.
* trans-decl.c (gfc_get_symbol_decl): Add local
finalizable vars to the deferred list.
(gfc_trans_deferred_vars): Call gfc_trans_deferred_array
for those.

2013-06-21  Tobias Burnus  bur...@net-b.de

* gfortran.dg/finalize_17.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/finalize_17.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/testsuite/ChangeLog