[Bug gcov-profile/49340] read_couts_file() not called for -fbranch-probabilities

2014-11-01 Thread vapier at gentoo dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49340

--- Comment #2 from Mike Frysinger vapier at gentoo dot org ---
seems to work with gcc-4.9 at least ?


[Bug target/63691] GCC 4.9.x fails to build GLIBC 2.20 on HPPA

2014-11-01 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63691

--- Comment #9 from Andreas Schwab sch...@linux-m68k.org ---
You don't need a link test, you only need to check whether there is a reference
to abort.


[Bug c++/63705] New: [4.8/4.9/5 Regression] function template specialization outside namespace rejected with C++11

2014-11-01 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63705

Bug ID: 63705
   Summary: [4.8/4.9/5 Regression] function template
specialization outside namespace rejected with C++11
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org

Please consider:

markus@x4 ~ % cat te.ii
namespace N
{
template typename T1
void
f (const T1) {}
}

template 
void
N::f (const int) {}

markus@x4 ~ % clang++ -std=c++11 -c te.ii
markus@x4 ~ % icpc -std=c++11 -c te.ii
markus@x4 ~ % g++ -std=c++11 -c te.ii
te.ii:10:16: error: specialization of ‘templateclass T1 void N::f(T1)’ in
different namespace [-fpermissive]
 N::f (const int) {}
^
te.ii:5:1: error:   from definition of ‘templateclass T1 void N::f(T1)’
[-fpermissive]
 f (const T1) {}
 ^

markus@x4 ~ % clang++ -c te.ii
te.ii:10:4: warning: first declaration of function template specialization of
'f' outside namespace 'N' is a C++11 extension [-Wc++11-extensions]
N::f (const int) {}
   ^
te.ii:5:1: note: explicitly specialized declaration is here
f (const T1) {}

[Bug libstdc++/63706] New: stl_heap.h:make_heap()'s worst time complexity doesn't conform with C++ standard

2014-11-01 Thread tomytsai at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63706

Bug ID: 63706
   Summary: stl_heap.h:make_heap()'s worst time complexity doesn't
conform with C++ standard
   Product: gcc
   Version: 4.9.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tomytsai at gmail dot com

Hi,

In current (4.9.0 and the latest collection) libstdc++ source code, the
make_heap() function has the worst time complexity of O(n log n), while
C++ standard requires This algorithm makes at most 3 * (finish - start)
comparisons., i.e. O(n) time complexity.

This topic has been discussed in some related links:
http://stackoverflow.com/questions/24475056/is-libcs-implementation-of-stdmake-heap-nonconformant

http://llvm.org/bugs/show_bug.cgi?id=20161

As a result, llvm3.4 has added a new function, __sift_down(), to support
the worst time O(n) time complexity for make_heap().

Their implementation can be found at 
http://llvm.org/svn/llvm-project/libcxx/trunk/include/algorithm
(search for make_heap())

Currently, the make_heap() implementation in libstdc++ is usually working 
well with practical data. However we could make up some pathetic 
cases to make it run with O(n lg n) comparisons, as below.

If we split data into 4 equal parts:
[  A  |  B  |  C  |  D  ]

and put the largest n/4 elements in part B, from large to small. The rest
of data we don't care about the order. Then the data looks like:

[  A  | B: [largest] [2nd largest] [3rd]  [n/4-th largest] | C | D ]

If we call make_heap() on this data, based on the current implementation,
it will go backwards from the end of part B, to the start of part A.

Then what happens is that: since the elements in part B are the top n/4
elements of all data, they will be 1. temporarily located to a slot in
the [ C | D ] area, and then 2. pushed up all the way to the first
element (since they are the max element encountered so far). Step 2
takes O(log n) steps for each element. 

Hence, for the pathetic data above, if we do make_heap(), processing part B
already takes O(n/4 * log n) data comparison and moves. This doesn't conform
with the C++ standard, which requires O(n) time complexity.

One possible solution is, as llvm 3.4 does above, to provide a sift_down()
function to support the worst time O(n) time complexity.

(In addition, like llvm 3.4, the sift_down() function is also useful for
supporting the pop_heap() function. Although it has the same asymptotic 
complexity as current __adjust_heap() in gcc's libstdc++, but it only has
one-pass top-down search, and so has a better cache performance)

Thanks!

Tomy


[Bug c++/63705] function template specialization outside namespace rejected with C++11

2014-11-01 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63705

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |5.0

--- Comment #1 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Not a regression.


[Bug c++/63705] function template specialization outside namespace rejected with C++11

2014-11-01 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63705

--- Comment #2 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
See also:
https://groups.google.com/a/isocpp.org/forum/#!topic/std-discussion/ZCRb8iZwtos


[Bug target/59888] Darwin linker error illegal text-relocation with -shared

2014-11-01 Thread fxcoudert at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59888

--- Comment #13 from Francois-Xavier Coudert fxcoudert at gcc dot gnu.org ---
Might this be related with PR63622 (and thus PR63580)?


[Bug target/63691] GCC 4.9.x fails to build GLIBC 2.20 on HPPA

2014-11-01 Thread aaro.koskinen at iki dot fi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63691

--- Comment #10 from Aaro Koskinen aaro.koskinen at iki dot fi ---
(In reply to Andreas Schwab from comment #9)
 You don't need a link test, you only need to check whether there is a
 reference to abort.

A simple test:

$ cat pr63691.c
void foo (int a, char *p)
{
if (a == 0)
return;
*p = 1;
}
int main (int argc, char **argv)
{
foo(argc, 0);
return 0;
}
$ hppa-linux-gnu-gcc -nostdlib -O2 pr63691.c
/home/aaro/los/work/parisc/toolchain/lib/gcc/hppa-linux-gnu/4.9.2/../../../../hppa-linux-gnu/bin/ld:
warning: cannot find entry symbol _start; defaulting to 00010054
/tmp/ccWAW31H.o: In function `main':
(.text.startup+0x14): undefined reference to `abort'
collect2: error: ld returned 1 exit status

abort() reference is gone if you compile GCC with the patch
Dave posted here:

https://www.sourceware.org/ml/libc-alpha/2014-10/msg00823.html

BTW, I think this optimization also breaks PALO (PA-RISC bootloader). There the
program actually wants to access page zero.


[Bug target/63651] Lot of failures in obj(c|-c++) with yosemite

2014-11-01 Thread fxcoudert at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63651

Francois-Xavier Coudert fxcoudert at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-11-01
 CC||fxcoudert at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Francois-Xavier Coudert fxcoudert at gcc dot gnu.org ---
Some NSObject methods that used to return (id) now return (instancetype). Only
NSObject has this, and the list includes: self, retain, autorelease, init, new,
alloc*

The What's new in OS X Yosemite document at
https://developer.apple.com/Library/mac/releasenotes/MacOSX/WhatsNewInOSX/WhatsNewInOSX.pdf
says:

Many frameworks on OS X have adopted small interface changes that take
advantage of modern Objective-C syntax: […] Initialization methods are updated
to have a return value of instancetype instead of id.

It is documented further in Apple docs, or in clang here:
http://clang.llvm.org/docs/LanguageExtensions.html

I suppose as a first approach, we could make it equivalent to id.

[Bug c++/63705] function template specialization outside namespace rejected with C++11

2014-11-01 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63705

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-11-01
 Ever confirmed|0   |1

--- Comment #3 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Possible (untested) fix:

diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 2cf10f4..1171b5d 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -780,15 +780,15 @@ check_specialization_namespace (tree tmpl)
   error (specialization of %qD must appear at namespace scope, tmpl);
   return false;
 }
-  if (is_associated_namespace (current_namespace, tpl_ns))
-/* Same or super-using namespace.  */
-return true;
-  else
+  if (!is_associated_namespace (current_namespace, tpl_ns) 
+  (cxx_dialect  cxx11))
 {
   permerror (input_location, specialization of %qD in different
namespace, tmpl);
   permerror (input_location,   from definition of %q+#D, tmpl);
   return false;
 }
+
+  return true;
 }

 /* SPEC is an explicit instantiation.  Check that it is valid to


[Bug libgcc/56846] _Unwind_Backtrace on ARM and noexcept

2014-11-01 Thread npl at chello dot at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56846

--- Comment #10 from npl at chello dot at ---
Hi,

thanks for the fix, any chance of adding this to 4.9 and 4.8 aswell?


[Bug target/63691] GCC 4.9.x fails to build GLIBC 2.20 on HPPA

2014-11-01 Thread danglin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63691

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
   Last reconfirmed||2014-11-01
 CC||danglin at gcc dot gnu.org
 Resolution|INVALID |---
 Ever confirmed|0   |1

--- Comment #11 from John David Anglin danglin at gcc dot gnu.org ---
There is a reference to abort and abort is part of stdlib.


[Bug c++/63705] function template specialization outside namespace rejected with C++11

2014-11-01 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63705

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org ---
PR 56480 ?


[Bug c++/63705] function template specialization outside namespace rejected with C++11

2014-11-01 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63705

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
(In reply to Jonathan Wakely from comment #4)
 PR 56480 ?

Yes. Thanks.

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


[Bug c++/56480] Explicit specialization in a namespace enclosing the specialized template

2014-11-01 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

 CC||trippels at gcc dot gnu.org

--- Comment #4 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
*** Bug 63705 has been marked as a duplicate of this bug. ***


[Bug c++/56480] Explicit specialization in a namespace enclosing the specialized template

2014-11-01 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480

Markus Trippelsdorf trippels at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||rejects-valid
 CC||jason at gcc dot gnu.org

--- Comment #5 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Two possible fixes: 

1)
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 2cf10f442f68..09a545496fa8 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -785,8 +785,12 @@ check_specialization_namespace (tree tmpl)
 return true;
   else
 {
-  permerror (input_location, specialization of %qD in different
namespace, tmpl);
-  permerror (input_location,   from definition of %q+#D, tmpl);
+  if (cxx_dialect  cxx11)
+   {
+ permerror (input_location, specialization of %qD in different 
+namespace, tmpl);
+ permerror (input_location,   from definition of %q+#D, tmpl);
+   }
   return false;
 }
 }

2)
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 2cf10f442f68..1171b5d736d5 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -780,15 +780,15 @@ check_specialization_namespace (tree tmpl)
   error (specialization of %qD must appear at namespace scope, tmpl);
   return false;
 }
-  if (is_associated_namespace (current_namespace, tpl_ns))
-/* Same or super-using namespace.  */
-return true;
-  else
+  if (!is_associated_namespace (current_namespace, tpl_ns) 
+  (cxx_dialect  cxx11))
 {
   permerror (input_location, specialization of %qD in different
namespace, tmpl);
   permerror (input_location,   from definition of %q+#D, tmpl);
   return false;
 }
+
+  return true;
 }

 /* SPEC is an explicit instantiation.  Check that it is valid to


The following testcases:

g++.dg/template/spec17.C
g++.dg/template/spec25.C
g++.dg/template/spec36.C
g++.old-deja/g++.ns/template13.C
g++.old-deja/g++.pt/explicit73.C 
g++.old-deja/g++.pt/lookup10.C

would have to be updated.


[Bug ada/63656] a-tags.adb:82:04: warning: types for unchecked conversion have different sizes

2014-11-01 Thread arekm at maven dot pl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63656

--- Comment #2 from Arkadiusz Miskiewicz arekm at maven dot pl ---

Hm, isn't it already selected properly?

--- gcc-4.9.2/gcc/ada/gcc-interface/Makefile.in~2014-11-01
15:07:27.0 +0100
+++ gcc-4.9.2/gcc/ada/gcc-interface/Makefile.in 2014-11-01 15:11:17.921591578
+0100
@@ -349,12 +349,18 @@
 # picks up the right files. For a given target this must be coherent
 # with MULTILIB_DIRNAMES defined in gcc/config/target/t-*.

+$(warning XXX PRE ENTERED)
 ifeq ($(strip $(filter-out %x86_64, $(target_cpu))),)
+  $(warning XXX ENTERED)
   ifeq ($(strip $(MULTISUBDIR)),/32)
 target_cpu:=i686
+$(warning XXX TARGET CPU i686)
   else
 ifeq ($(strip $(MULTISUBDIR)),/x32)
   target_cpu:=x32
+  $(warning XXX TARGET CPU x32)
+else
+  $(warning XXX TARGET CPU NONE)
 endif
   endif
 endif

and while building:
../gcc-interface/Makefile:352: XXX PRE ENTERED
../gcc-interface/Makefile:354: XXX ENTERED
../gcc-interface/Makefile:357: XXX TARGET CPU i686

a bit more of log:
http://ixion.pld-linux.org/~arekm/gcc-ada-log1.txt
and full log:
http://ixion.pld-linux.org/~arekm/gcc-ada-log-long.txt


[Bug bootstrap/63573] [5 Regression] libgo: ICE building libgo on powerpc-linux-gnu

2014-11-01 Thread hubicka at ucw dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63573

--- Comment #8 from Jan Hubicka hubicka at ucw dot cz ---
There is a pasto in the previous patch.  This is what I am testing.

Index: calls.c
===
--- calls.c(revision 216942)
+++ calls.c(working copy)
@@ -1210,6 +1211,15 @@ initialize_argument_information (int num
TREE_CODE (base) != SSA_NAME
(!DECL_P (base) || MEM_P (DECL_RTL (base)
 {
+  /* Argument setup code may have copied the value to register.  We
+ that optimization now because the tail call code must use
+ the original location.  */
+  if (TREE_CODE (args[i].tree_value) == PARM_DECL
+   !MEM_P (DECL_RTL (args[i].tree_value))
+   DECL_INCOMING_RTL (args[i].tree_value)
+   MEM_P (DECL_INCOMING_RTL (args[i].tree_value)))
+set_decl_rtl (args[i].tree_value, DECL_INCOMING_RTL
(args[i].tree_value));
+
   mark_addressable (args[i].tree_value);

   /* We can't use sibcalls if a callee-copied argument is


[Bug ipa/63671] [5 Regression] 21% tramp3d-v4 performance hit due to -fdevirtualize

2014-11-01 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63671

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-11-01
   Assignee|unassigned at gcc dot gnu.org  |hubicka at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #4 from Jan Hubicka hubicka at gcc dot gnu.org ---
There are not many virtual functions in tramp3d hot paths, right?
I suppose it may be just inlining into virtual functions that are removed
afterwards.  I will try to debug this.


[Bug c++/63707] New: Brace initialization of array sometimes fails if no copy constructor

2014-11-01 Thread john.lindgren at aol dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63707

Bug ID: 63707
   Summary: Brace initialization of array sometimes fails if no
copy constructor
   Product: gcc
   Version: 4.9.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: john.lindgren at aol dot com

Created attachment 33859
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33859action=edit
Test case 1

Brace-initializing an array of a class without a public copy constructor gives
an error in some cases but succeeds in others.  After discussing the problem
here [1], I believe this is bug in GCC.

Attached are three test cases:
test1-fails.cc: Initialization of member array of non-literal type (error)
test2-works.cc: Initialization of member array of literal type (compiles)
test3-works.cc: Initialization of static array of non-literal type (compiles)
test4-works.cc: Initialization of single member of non-literal type (compiles)

The error given is:
$ g++ -Wall -Wextra -std=c++11 -c test1-fails.cc 
test1-fails.cc: In constructor ‘Parent::Parent()’:
test1-fails.cc:13:35: error: use of deleted function ‘Child::Child(const
Child)’
 Parent () : children {{5}, {7}} {}
   ^
test1-fails.cc:7:5: note: declared here
 Child (const Child ) = delete;
 ^

$ g++ --version
g++ (GCC) 4.9.1 20140903 (prerelease)

By way of comparison, Clang 3.5.0 compiles all three test cases without errors.

[1]
http://stackoverflow.com/questions/26685551/how-to-initialize-array-of-classes-with-deleted-copy-constructor-c11

[Bug c++/63707] Brace initialization of array sometimes fails if no copy constructor

2014-11-01 Thread john.lindgren at aol dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63707

--- Comment #1 from John Lindgren john.lindgren at aol dot com ---
Created attachment 33860
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33860action=edit
Test case 2


[Bug c++/63707] Brace initialization of array sometimes fails if no copy constructor

2014-11-01 Thread john.lindgren at aol dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63707

--- Comment #2 from John Lindgren john.lindgren at aol dot com ---
Created attachment 33861
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33861action=edit
Test case 3


[Bug c++/63707] Brace initialization of array sometimes fails if no copy constructor

2014-11-01 Thread john.lindgren at aol dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63707

--- Comment #3 from John Lindgren john.lindgren at aol dot com ---
Created attachment 33862
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33862action=edit
Test case 4


[Bug c++/63707] Brace initialization of array sometimes fails if no copy constructor

2014-11-01 Thread john.lindgren at aol dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63707

John Lindgren john.lindgren at aol dot com changed:

   What|Removed |Added

  Attachment #33860|0   |1
is obsolete||

--- Comment #4 from John Lindgren john.lindgren at aol dot com ---
Created attachment 33863
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33863action=edit
Corrected test case 2

Corrected test case 2 (previous was identical to test case 1).


[Bug ada/63708] New: [5.0 Regression] FAIL: cxf3002

2014-11-01 Thread danglin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63708

Bug ID: 63708
   Summary: [5.0 Regression] FAIL:   cxf3002
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: danglin at gcc dot gnu.org
  Host: hppa-unknown-linux-gnu
Target: hppa-unknown-linux-gnu
 Build: hppa2.0w-hp-hpux11.11

BUILD cxf3002.adbgnatmake --GCC=/home/dave/gnu/gcc/objdir/gcc/xgcc
-B/home/dave/gnu/gcc/objdir/g
cc/ -gnatws -O2 -gnat95
-I/home/dave/gnu/gcc/objdir/gcc/testsuite/ada/acats/support cxf3002.adb -largs
--GCC=/home/dave/gnu/gcc/objdir/gcc/xgcc -B/home/dave/gnu/gcc/objdir/gcc/
/home/dave/gnu/gcc/objdir/gcc/xgcc -c -B/home/dave/gnu/gcc/objdir/gcc/ -gnatws
-O2 -gnat95 -I/home/dave/gnu/gcc/objdir/gcc/testsuite/ada/acats/support
cxf3002.a
dbgnatbind -I/home/dave/gnu/gcc/objdir/gcc/testsuite/ada/acats/support -x
cxf3002.
ali
gnatlink cxf3002.ali -O2 --GCC=/home/dave/gnu/gcc/objdir/gcc/xgcc
-B/home/dave/g
nu/gcc/objdir/gcc/
RUN cxf3002

,.,. CXF3002 ACATS 2.5 14-11-01 02:51:48
 CXF3002 Check that the functionality contained in package
Ada.Wide_Text_IO.Editing is available and produces
correct results.   * CXF3002 Picture String #  2reported as
being invalid.
   * CXF3002 Picture String #  2reported as being invalid.
   * CXF3002 Picture String #  2reported as being invalid.
   * CXF3002 Picture String #  2reported as being invalid.
   * CXF3002 Picture String #  2reported as being invalid.
   * CXF3002 Picture String #  2reported as being invalid.
 CXF3002 FAILED .
FAIL:   cxf3002

Revision 215252 was ok.


[Bug ada/62235] segmentation fault on Ada 2012 code

2014-11-01 Thread simon at pushface dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62235

simon at pushface dot org changed:

   What|Removed |Added

 CC||simon at pushface dot org

--- Comment #3 from simon at pushface dot org ---
A workround appears to be to replace


generic
   type Record_Type; -- It should be an untagged record for C compatibility
package RDF.Auxilary.Handled_Record is

   type Access_Type is access Record_Type
  with Convention=C;

by

generic
   type Record_Type; -- It should be an untagged record for C compatibility
   type Record_Type_Access is access Record_Type; -- should have convention C
package RDF.Auxilary.Handled_Record is

   subtype Access_Type is Record_Type_Access;


(I guess the new formal_incomplete_type_declaration stuff is a bit
fragile)


[Bug target/63709] New: msp430 Y constraint generates unacceptable constant in large mode

2014-11-01 Thread pab at pabigot dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63709

Bug ID: 63709
   Summary: msp430 Y constraint generates unacceptable constant in
large mode
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: pab at pabigot dot com

Building trunk gcc at SVN 217005 produces the following from make all-target:

# If this is the top-level multilib, build all the other
# multilibs.
/tmp/gcc/./gcc/xgcc -B/tmp/gcc/./gcc/
-B/usr/local/gcc-msp430-elf-dev-20141101/msp430-elf/bin/
-B/usr/local/gcc-msp430-elf-dev-20141101/msp430-elf/lib/ -isystem
/usr/local/gcc-msp430-elf-dev-20141101/msp430-elf/include -isystem
/usr/local/gcc-msp430-elf-dev-20141101/msp430-elf/sys-include-g -O2 -mlarge
-O2  -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings
-Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition 
-isystem ./include   -Os -ffunction-sections -fdata-sections -mhwmult=none -g
-DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc  -Os
-ffunction-sections -fdata-sections -mhwmult=none -I. -I. -I../../.././gcc
-I/opt/gcc/libgcc -I/opt/gcc/libgcc/. -I/opt/gcc/libgcc/../gcc
-I/opt/gcc/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o unwind-dw2.o -MT
unwind-dw2.o -MD -MP -MF unwind-dw2.dep -fexceptions -c
/opt/gcc/libgcc/unwind-dw2.c -fvisibility=hidden -DHIDE_EXPORTS
/tmp/ccdnPFDw.s: Assembler messages:
/tmp/ccdnPFDw.s:3439: Error: value 0xfff8 out of extended range.
make[3]: *** [unwind-dw2.o] Error 1

The offending generated code is:

.LBB296:
.loc 2 208 0
CMP.B   #0, 148(R5) { JEQ   .L400
.loc 2 209 0
BISX.A  #-524288, 96(R10)
.LVL485:
BRA #.L379
.LVL486:
.L400:
.loc 2 211 0
ANDX.A  #524287, 96(R10)
.LVL487:

Either gcc needs to truncate values to fit within the 20-bit/16-bit limits or
the check in binutils needs to be relaxed.


[Bug c/61534] Wlogical-op should not warn when either operand comes from macro expansion

2014-11-01 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61534

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
 Depends on||43486

--- Comment #5 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
If we take gcc/testsuite/gcc.dg/pr40172-3.c (which is XFAIL)

extern int xxx;
#define XXX xxx
int test (void)
{
  if (!XXX  xxx)
return 4;
  else
return 0;
}


The big hurdle is that !XXX becomes XXX == 0, but it has the location of !,
which is not virtual. If we look at the argument of the expression, then XXX is
actually a var_decl, whose location corresponds to the declaration and not the
use, and it is not virtual either. This is PR43486.