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).