public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/60689] New: Bogus error with atomic::exchange
@ 2014-03-27 19:33 roman at binarylife dot net
  2014-03-27 20:11 ` [Bug c++/60689] " redi at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: roman at binarylife dot net @ 2014-03-27 19:33 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 8129 bytes --]

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60689

            Bug ID: 60689
           Summary: Bogus error with atomic::exchange
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: roman at binarylife dot net
              Host: x86_64-unknown-linux-gnu
            Target: x86_64-unknown-linux-gnu
             Build: x86_64-unknown-linux-gnu

$ cat test.cc 
#include <atomic>

template<int N>
struct X { char stuff[N]; };

template<int N>
void test() {
  X<N> x;
  std::atomic<X<N>> a;
  x = a;
  a.exchange(x);
}

int main() {
  test<9>();
  return 0;
}

$ g++ -std=c++11 -O2 -l atomic test.cc 
In file included from test.cc:1:0:
/home/abend/local/gcc-4.9/include/c++/4.9.0/atomic: In instantiation of ‘_Tp
std::atomic<_Tp>::exchange(_Tp, std::memory_order) [with _Tp = X<9>;
std::memory_order = std::memory_order]’:
test.cc:11:3:   required from ‘void test() [with int N = 9]’
test.cc:15:11:   required from here
/home/abend/local/gcc-4.9/include/c++/4.9.0/atomic:225:41: error: invalid
conversion from ‘X<9>*’ to ‘long unsigned int’ [-fpermissive]
  __atomic_exchange(&_M_i, &__i, &tmp, _m); 
                                         ^
/home/abend/local/gcc-4.9/include/c++/4.9.0/atomic:225:41: error: cannot
convert ‘std::memory_order’ to ‘void*’ for argument ‘4’ to ‘void
__atomic_exchange(long unsigned int, volatile void*, void*, void*, int)’

$ g++ --version
g++ (GCC) 4.9.0 20140327 (experimental)
...
>From gcc-bugs-return-447661-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Thu Mar 27 19:48:43 2014
Return-Path: <gcc-bugs-return-447661-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 25446 invoked by alias); 27 Mar 2014 19:48:43 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 25391 invoked by uid 48); 27 Mar 2014 19:48:39 -0000
From: "redi at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/60417] [DR 1518] Bogus error on C++03 aggregate initialization
Date: Thu, 27 Mar 2014 19:48:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 4.9.0
X-Bugzilla-Keywords: rejects-valid
X-Bugzilla-Severity: normal
X-Bugzilla-Who: redi at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: jason at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-60417-4-5d2TXwm7Rb@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-60417-4@http.gcc.gnu.org/bugzilla/>
References: <bug-60417-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-03/txt/msg02530.txt.bz2
Content-length: 880

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60417

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Still a regression for aggregate-initialization of arrays:

struct A { explicit A(int = 0); };

int main()
{
  A a[1] = { };
}

zzz.cc: In function ‘int main()’:
zzz.cc:5:14: error: converting to ‘A’ from initializer list would use explicit
constructor ‘A::A(int)’
   A a[1] = { };
              ^

And similarly for array members that are list-initialized:

struct A { explicit A(int = 0); };
struct B { A a[1]; B() : a{} {} };

int main()
{
  B b;
}

zz.cc: In constructor ‘B::B()’:
zz.cc:2:28: error: converting to ‘A’ from initializer list would use explicit
constructor ‘A::A(int)’
 struct B { A a[1]; B() : a{} {} };
                            ^
>From gcc-bugs-return-447662-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Thu Mar 27 19:55:54 2014
Return-Path: <gcc-bugs-return-447662-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 29519 invoked by alias); 27 Mar 2014 19:55:54 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 29493 invoked by uid 48); 27 Mar 2014 19:55:50 -0000
From: "trippels at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug lto/60690] New: Chromium build error with LTO
Date: Thu, 27 Mar 2014 19:55:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: new
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: lto
X-Bugzilla-Version: 4.9.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: trippels at gcc dot gnu.org
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter attachments.created
Message-ID: <bug-60690-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-03/txt/msg02531.txt.bz2
Content-length: 2051

http://gcc.gnu.org/bugzilla/show_bug.cgi?id`690

            Bug ID: 60690
           Summary: Chromium build error with LTO
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: lto
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org

Created attachment 32467
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id2467&actioníit
testcase

markus@x4 tmp % cat simple_idct.i
static int __attribute__ ((used)) wm1010;
void fn1 ()
{
  __asm__(" \nmovq 0, %%mm3 \nmovq wm1010(%%rip), %%mm4 "
          "\nmovq %%mm0, 0 \nmovq %%mm0,0 \nmovq %%mm0,0  "
          " \nmovq %%mm0,0  \n2: "
          "\nmovq 0, %%mm0 \nmovq 0, %%mm1 \nmovq 0, "
          "%%mm2 \nmovq 0, %%mm3  \nmovq %%mm0, %%mm4 "
          "\npsrad $20, %%mm2 \npsrad $20, %%mm5 \nmovq %%mm6, "
          "%%mm2 \npsrad $20, %%mm5 \nmovq %%mm6, %%mm4 "
          "\npsrad $20, %%mm0 \npsrad $20, %%mm2 \npackssdw "
          "%%mm7, %%mm7 \nmovd %%mm7,0 \npackssdw %%mm0, "
          "%%mm2 \npsrad $20, %%mm5 \nmovq %%mm6, %%mm4 "
          "\nmovd %%mm6,0 \nmovd %%mm4,0 \nmovd %%mm4, %%eax  "
          "\norl %%eax, %%eax \njz 0 "
          "\nmovq 0, %%mm4 \npmaddwd %%mm0, %%mm5 "
          "\npsrad $11, %%mm7 \npsrad $11, %%mm4 "
          "\n# .p2align \n6: movq 0, %%mm1 "
          " \npsrad $20, %%mm6  \npsrad $20, %%mm2 \n9: \n"
          :);
}

markus@x4 tmp % gcc -flto -O2 -fPIC -shared dsputil_init.i simple_idct.i
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.0/../../../../x86_64-pc-linux-gnu/bin/ld:
error: /tmp/ccQnT34K.ltrans1.ltrans.o: requires dynamic R_X86_64_PC32 reloc
against 'wm1010' which may overflow at runtime; recompile with -fPIC
collect2: error: ld returned 1 exit status

(dsputil_init.i is just a unit to trigger LTO partitioning)

markus@x4 tmp % gcc -O2 -fPIC -shared dsputil_init.i simple_idct.i
markus@x4 tmp % gcc -flto -flto-partition=none -O2 -fPIC -shared dsputil_init.i
simple_idct.i
markus@x4 tmp %


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/60689] Bogus error with atomic::exchange
  2014-03-27 19:33 [Bug c++/60689] New: Bogus error with atomic::exchange roman at binarylife dot net
@ 2014-03-27 20:11 ` redi at gcc dot gnu.org
  2014-03-27 20:21 ` redi at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2014-03-27 20:11 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60689

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-03-27
                 CC|                            |rth at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
#ifndef N
#define N 9
#endif

struct S { char a[N]; };

int main()
{
  S a, b, c;
  __atomic_exchange(&a, &b, &c, __ATOMIC_SEQ_CST);
}

$ g++ -std=c++11 aa.cc -DN=8
$ g++ -std=c++11 aa.cc 
aa.cc: In function ‘int main()’:
aa.cc:10:49: error: invalid conversion from ‘S*’ to ‘long unsigned int’
[-fpermissive]
   __atomic_exchange(&a, &b, &c, __ATOMIC_SEQ_CST);
                                                 ^
aa.cc:10:49: error: invalid conversion from ‘int’ to ‘void*’ [-fpermissive]
aa.cc:10:49: error: too few arguments to function ‘void __atomic_exchange(long
unsigned int, volatile void*, void*, void*, int)’
<built-in>: note: declared here
>From gcc-bugs-return-447666-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Thu Mar 27 20:11:31 2014
Return-Path: <gcc-bugs-return-447666-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 9390 invoked by alias); 27 Mar 2014 20:11:31 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 9364 invoked by uid 48); 27 Mar 2014 20:11:28 -0000
From: "pinskia at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/60691] Build fails in libstdc++ with --enable-sjlj-exceptions on ARM
Date: Thu, 27 Mar 2014 20:11:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 4.8.2
X-Bugzilla-Keywords:
X-Bugzilla-Severity: major
X-Bugzilla-Who: pinskia at gcc dot gnu.org
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-60691-4-jz7KbsFQwI@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-60691-4@http.gcc.gnu.org/bugzilla/>
References: <bug-60691-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-03/txt/msg02535.txt.bz2
Content-length: 222

http://gcc.gnu.org/bugzilla/show_bug.cgi?id`691

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Why are you trying to compile with SJLJ exceptions?  The unwinding tables on
arm are part of the EABI.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/60689] Bogus error with atomic::exchange
  2014-03-27 19:33 [Bug c++/60689] New: Bogus error with atomic::exchange roman at binarylife dot net
  2014-03-27 20:11 ` [Bug c++/60689] " redi at gcc dot gnu.org
@ 2014-03-27 20:21 ` redi at gcc dot gnu.org
  2014-03-28  7:19 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2014-03-27 20:21 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 3348 bytes --]

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60689

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
when the object is bigger than the wordsize the generic __atomic_exchange gets
expanded incorrectly

$ g++11 aa.cc -DN=4 -m32
$ g++11 aa.cc -DN=5 -m32
aa.cc: In function ‘int main()’:
aa.cc:10:49: error: invalid conversion from ‘S*’ to ‘unsigned int’
[-fpermissive]
   __atomic_exchange(&a, &b, &c, __ATOMIC_SEQ_CST);
                                                 ^
aa.cc:10:49: error: invalid conversion from ‘int’ to ‘void*’ [-fpermissive]
aa.cc:10:49: error: too few arguments to function ‘void
__atomic_exchange(unsigned int, volatile void*, void*, void*, int)’
<built-in>: note: declared here
>From gcc-bugs-return-447669-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Thu Mar 27 20:47:48 2014
Return-Path: <gcc-bugs-return-447669-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 30071 invoked by alias); 27 Mar 2014 20:47:48 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 30033 invoked by uid 48); 27 Mar 2014 20:47:44 -0000
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug c++/60689] Bogus error with atomic::exchange
Date: Thu, 27 Mar 2014 20:47:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: c++
X-Bugzilla-Version: 4.9.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: jakub at gcc dot gnu.org
X-Bugzilla-Status: ASSIGNED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: jakub at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_status cc assigned_to attachments.created
Message-ID: <bug-60689-4-TPT0PXCaqx@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-60689-4@http.gcc.gnu.org/bugzilla/>
References: <bug-60689-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-03/txt/msg02538.txt.bz2
Content-length: 794

http://gcc.gnu.org/bugzilla/show_bug.cgi?id`689

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |jakub at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 32469
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id2469&actioníit
gcc49-pr60689.patch

Untested fix.  4.8 needs the same fix I think.
In any case, no idea where to put a test for this.  libstdc++-v3?  libatomic?
g++.dg and just make it compile test?


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/60689] Bogus error with atomic::exchange
  2014-03-27 19:33 [Bug c++/60689] New: Bogus error with atomic::exchange roman at binarylife dot net
  2014-03-27 20:11 ` [Bug c++/60689] " redi at gcc dot gnu.org
  2014-03-27 20:21 ` redi at gcc dot gnu.org
@ 2014-03-28  7:19 ` jakub at gcc dot gnu.org
  2014-03-28 18:17 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-03-28  7:19 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60689

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #32469|0                           |1
        is obsolete|                            |

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 32470
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32470&action=edit
gcc49-pr60689.patch

Ugh, except it doesn't work, it breaks C.  The problem is that
add_atomic_size_parameter calls build_function_call_vec which behaves
differently between C and C++.  For C that function calls
resolve_overloaded_builtin, thus it recurses and adds the needed parameter in
there and if we add the extra parameter as in my earlier patch, the recursive
resolve_overloaded_builtin will complain that __atomic_exchange has too many
parameters.  For C++ it doesn't call that (finish_call_expr calls that
instead), thus if we don't add the parameter there, nothing adds it.

So, the options I see are:
1) what I'm attaching, make build_function_call_vec which is in C++ FE only
called from c-common/ bits behave like C build_function_call_vec and call
resolve_overloaded_builtin there
2) some static flag which will do nothing in resolve_overloaded_builtin if
called recursively (but, David Malcolm will complain about global state)
3) when checking number of arguments, allow the case when there is the extra
integer argument for the size; the problem with that is that I'd be afraid we'd
allow people that way to call __atomic_exchange (9, ptr1, ptr2, ptr3,
__ATOMIC_SEQ_CST); which we don't want to


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/60689] Bogus error with atomic::exchange
  2014-03-27 19:33 [Bug c++/60689] New: Bogus error with atomic::exchange roman at binarylife dot net
                   ` (2 preceding siblings ...)
  2014-03-28  7:19 ` jakub at gcc dot gnu.org
@ 2014-03-28 18:17 ` jakub at gcc dot gnu.org
  2014-04-10  7:54 ` jakub at gcc dot gnu.org
  2014-04-10  8:05 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-03-28 18:17 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60689

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Fri Mar 28 18:16:32 2014
New Revision: 208912

URL: http://gcc.gnu.org/viewcvs?rev=208912&root=gcc&view=rev
Log:
    PR c++/60689
    * c-tree.h (c_build_function_call_vec): New prototype.
    * c-typeck.c (build_function_call_vec): Don't call
    resolve_overloaded_builtin here.
    (c_build_function_call_vec): New wrapper function around
    build_function_call_vec.  Call resolve_overloaded_builtin here.
    (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
    Call c_build_function_call_vec instead of build_function_call_vec.
    * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
    * c-decl.c (finish_decl): Likewise.

    * c-common.c (add_atomic_size_parameter): When creating new
    params vector, push the size argument first.

    * c-c++-common/pr60689.c: New test.

Added:
    trunk/gcc/testsuite/c-c++-common/pr60689.c
Modified:
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.c
    trunk/gcc/c/ChangeLog
    trunk/gcc/c/c-decl.c
    trunk/gcc/c/c-parser.c
    trunk/gcc/c/c-tree.h
    trunk/gcc/c/c-typeck.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/60689] Bogus error with atomic::exchange
  2014-03-27 19:33 [Bug c++/60689] New: Bogus error with atomic::exchange roman at binarylife dot net
                   ` (3 preceding siblings ...)
  2014-03-28 18:17 ` jakub at gcc dot gnu.org
@ 2014-04-10  7:54 ` jakub at gcc dot gnu.org
  2014-04-10  8:05 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-04-10  7:54 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60689

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Thu Apr 10 07:54:08 2014
New Revision: 209267

URL: http://gcc.gnu.org/viewcvs?rev=209267&root=gcc&view=rev
Log:
    Backport from mainline
    2014-03-28  Jakub Jelinek  <jakub@redhat.com>

    PR c++/60689
    * c-tree.h (c_build_function_call_vec): New prototype.
    * c-typeck.c (build_function_call_vec): Don't call
    resolve_overloaded_builtin here.
    (c_build_function_call_vec): New wrapper function around
    build_function_call_vec.  Call resolve_overloaded_builtin here.
    (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign):
    Call c_build_function_call_vec instead of build_function_call_vec.
    * c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
    * c-decl.c (finish_decl): Likewise.

    * c-common.c (add_atomic_size_parameter): When creating new
    params vector, push the size argument first.

    * c-c++-common/pr60689.c: New test.

Added:
    branches/gcc-4_8-branch/gcc/testsuite/c-c++-common/pr60689.c
Modified:
    branches/gcc-4_8-branch/gcc/c-family/ChangeLog
    branches/gcc-4_8-branch/gcc/c-family/c-common.c
    branches/gcc-4_8-branch/gcc/c/ChangeLog
    branches/gcc-4_8-branch/gcc/c/c-decl.c
    branches/gcc-4_8-branch/gcc/c/c-parser.c
    branches/gcc-4_8-branch/gcc/c/c-tree.h
    branches/gcc-4_8-branch/gcc/c/c-typeck.c
    branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c++/60689] Bogus error with atomic::exchange
  2014-03-27 19:33 [Bug c++/60689] New: Bogus error with atomic::exchange roman at binarylife dot net
                   ` (4 preceding siblings ...)
  2014-04-10  7:54 ` jakub at gcc dot gnu.org
@ 2014-04-10  8:05 ` jakub at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-04-10  8:05 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60689

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-04-10  8:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-27 19:33 [Bug c++/60689] New: Bogus error with atomic::exchange roman at binarylife dot net
2014-03-27 20:11 ` [Bug c++/60689] " redi at gcc dot gnu.org
2014-03-27 20:21 ` redi at gcc dot gnu.org
2014-03-28  7:19 ` jakub at gcc dot gnu.org
2014-03-28 18:17 ` jakub at gcc dot gnu.org
2014-04-10  7:54 ` jakub at gcc dot gnu.org
2014-04-10  8:05 ` jakub at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).