[Bug target/34734] attribute((progmem)) not handled properly in C++ for AVRs

2008-02-02 Thread ilgb at livius dot net
--- Comment #1 from ilgb at livius dot net 2008-02-02 08:11 --- after upgrading to WinAVR-20071221 my C++ projects trigger the same warning message. for completeness, my sources look like: // usb_user_device_descriptor PROGMEM S_usb_device_descriptor usb_dev_desc = { sizeof(

[Bug fortran/35036] illegal E format descriptor produces wrong output

2008-02-02 Thread jvdelisle at gcc dot gnu dot org
--- Comment #11 from jvdelisle at gcc dot gnu dot org 2008-02-02 08:28 --- Here is a different view on this; from the standard: For an internal value that is neither an IEEE infinity nor a NaN, the form of the output field for a scale factor of zero is: [ ± ] [0].x1 x2 . . .

[Bug target/31388] ICE building libiberty multilib for mips16 multilibs

2008-02-02 Thread rsandifo at gcc dot gnu dot org
--- Comment #5 from rsandifo at gcc dot gnu dot org 2008-02-02 09:45 --- Subject: Bug 31388 Author: rsandifo Date: Sat Feb 2 09:44:21 2008 New Revision: 132066 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132066 Log: gcc/ PR target/31388 * config/mips/mips.md

[Bug target/35054] New: No documentation of #pragma push_macro(macro_name)

2008-02-02 Thread dannysmith at users dot sourceforge dot net
The new feature #pragma push_macro(macro_name) and #pragma pop_macro(macro_name) enabled by 2007-03-30 Richard Henderson [EMAIL PROTECTED] Kai Tietz [EMAIL PROTECTED] * c-pragma.c (struct def_pragma_macro_value): New. (struct def_pragma_macro): New.

[Bug target/34981] [4.2 Regression] Lazily-bound function called twice

2008-02-02 Thread rsandifo at gcc dot gnu dot org
--- Comment #4 from rsandifo at gcc dot gnu dot org 2008-02-02 09:56 --- Subject: Bug 34981 Author: rsandifo Date: Sat Feb 2 09:55:42 2008 New Revision: 132067 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132067 Log: gcc/ PR target/34981 *

[Bug target/34900] [4.2 Regression] target mips64vrel-elf. Internal compiler error (in reload_cse_simplify_operands, at postreload.c:392) while building libiberty

2008-02-02 Thread rsandifo at gcc dot gnu dot org
--- Comment #6 from rsandifo at gcc dot gnu dot org 2008-02-02 10:02 --- Subject: Bug 34900 Author: rsandifo Date: Sat Feb 2 10:01:38 2008 New Revision: 132068 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132068 Log: Add PR 34900 to CL for PR 31388 Modified:

[Bug target/31388] ICE building libiberty multilib for mips16 multilibs

2008-02-02 Thread rsandifo at gcc dot gnu dot org
--- Comment #6 from rsandifo at gcc dot gnu dot org 2008-02-02 10:02 --- Subject: Bug 31388 Author: rsandifo Date: Sat Feb 2 10:01:38 2008 New Revision: 132068 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132068 Log: Add PR 34900 to CL for PR 31388 Modified:

[Bug target/34981] [4.2 Regression] Lazily-bound function called twice

2008-02-02 Thread rsandifo at gcc dot gnu dot org
--- Comment #5 from rsandifo at gcc dot gnu dot org 2008-02-02 10:03 --- Fixed on mainline and 4.2. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added

[Bug target/34900] [4.2 Regression] target mips64vrel-elf. Internal compiler error (in reload_cse_simplify_operands, at postreload.c:392) while building libiberty

2008-02-02 Thread rsandifo at gcc dot gnu dot org
--- Comment #7 from rsandifo at gcc dot gnu dot org 2008-02-02 10:06 --- Patch applied to 4.2 (labelled as PR31388 -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added

[Bug preprocessor/35055] New: missing path to finclude directory when compiling .F90 files

2008-02-02 Thread hailijuan at gmail dot com
testcase: (a.F90) #include omp_lib.h call omp_set_dynamic (.false.) call omp_set_num_threads(4) !$omp parallel print *, t#:, omp_get_thread_num() !$omp end parallel end #gfortran a.F90 -fopenmp a.F90:1: error: omp_lib.h: No such file or directory the file omp_lib.h is found in

[Bug fortran/19925] Implied do-loop in an initialization expression is broken

2008-02-02 Thread dominiq at lps dot ens dot fr
--- Comment #25 from dominiq at lps dot ens dot fr 2008-02-02 11:09 --- From comment #24: ... handling the large array constructors by building the array at run time is obviously not fixed yet. This can be done for INTEGER, PARAMETER :: N=65535 INTEGER :: I(N)=(/(MOD(K,2),K=1,N)/)

[Bug fortran/35036] illegal E format descriptor produces wrong output

2008-02-02 Thread dominiq at lps dot ens dot fr
--- Comment #12 from dominiq at lps dot ens dot fr 2008-02-02 11:13 --- I agree that If -d k = 0 is confusing when you don't specify k. However you can remove the k and get if -d0, aka if 0d, then in my opinion it rule out d=0 and the format Ew.0 is invalid and should diagnosed at

[Bug middle-end/34882] g++: Internal error: Killed (program cc1plus)

2008-02-02 Thread myway dot cn at gmail dot com
--- Comment #7 from myway dot cn at gmail dot com 2008-02-02 12:06 --- (In reply to comment #6) The initialize_command_download() exposes the usual memory-hungriness of GCC with repetitive C++ initializers. We have plenty of bugreports with testcases for this, closing as invalid.

[Bug rtl-optimization/33410] [4.2/4.3 regression] ICE in iv_analyze_expr, at loop-iv.c:934

2008-02-02 Thread belyshev at depni dot sinp dot msu dot ru
--- Comment #17 from belyshev at depni dot sinp dot msu dot ru 2008-02-02 12:22 --- And here are clean results for the same revision: http://gcc.gnu.org/ml/gcc-testresults/2008-02/msg00099.html , which confirms that patch from comment 13 causes many new failures. --

[Bug middle-end/35056] New: [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenth at gcc dot gnu dot org
Current trunk ICEs in building libqt4: g++-4.3 -O -o /dev/null -S style.cpp rendering/RenderStyle.h: In member function 'void WebCore::RenderStyle::setOutlineStyle(WebCore::EBorderStyle, bool)': rendering/RenderStyle.h:1570: internal compiler error: in copy_to_mode_reg, at explow.c:621 Please

[Bug middle-end/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #1 from rguenth at gcc dot gnu dot org 2008-02-02 12:27 --- Created an attachment (id=15076) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15076action=view) testcase (unincluded) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35056

[Bug middle-end/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #2 from rguenth at gcc dot gnu dot org 2008-02-02 12:27 --- Reducing. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Known to work|

[Bug bootstrap/35051] [4.3 Regression] Build machine requires GMP and MPFR for building cross-host gccs

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #2 from rguenth at gcc dot gnu dot org 2008-02-02 12:31 --- Confirmed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Keywords|

[Bug middle-end/35053] SSE2 testcase crashes

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #1 from rguenth at gcc dot gnu dot org 2008-02-02 12:33 --- _mm_store_ps stores four(!) float values at the destination which needs to be 16-byte aligned. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added

[Bug middle-end/35053] SSE2 testcase crashes

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #2 from rguenth at gcc dot gnu dot org 2008-02-02 12:34 --- I suppose you want _mm_store_ss, btw. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35053

[Bug other/33702] [meta-bug] GCC 4.4 pending patches

2008-02-02 Thread manu at gcc dot gnu dot org
--- Comment #1 from manu at gcc dot gnu dot org 2008-02-02 12:52 --- Add alias to this bug. -- manu at gcc dot gnu dot org changed: What|Removed |Added

[Bug c/34985] Warning defined but not used despite __attribute__((__used__))

2008-02-02 Thread manu at gcc dot gnu dot org
--- Comment #2 from manu at gcc dot gnu dot org 2008-02-02 12:52 --- Patch here: http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00044.html I miss the patch tracker :( -- manu at gcc dot gnu dot org changed: What|Removed |Added

[Bug middle-end/17843] Warning not given for unreachable code in a switch

2008-02-02 Thread aldot at gcc dot gnu dot org
--- Comment #6 from aldot at gcc dot gnu dot org 2008-02-02 13:43 --- Created an attachment (id=15077) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15077action=view) Emit warning for surplus case labels in a switch stmt with a boolean condition The attached patchlet would warn

[Bug middle-end/17843] Warning not given for unreachable code in a switch

2008-02-02 Thread aldot at gcc dot gnu dot org
--- Comment #7 from aldot at gcc dot gnu dot org 2008-02-02 13:44 --- Reconfirm for 4.3.0 / 4.4.x -- aldot at gcc dot gnu dot org changed: What|Removed |Added

[Bug other/33702] [meta-bug] GCC 4.4 pending patches

2008-02-02 Thread aldot at gcc dot gnu dot org
--- Comment #2 from aldot at gcc dot gnu dot org 2008-02-02 13:46 --- Add link to PR17843 -- Warning not given for unreachable code in a switch In this case a boolean condition; Does not use (the already a bit convoluted) VRP. -- aldot at gcc dot gnu dot org changed:

[Bug libfortran/35001] shape for negative sizes

2008-02-02 Thread tkoenig at gcc dot gnu dot org
--- Comment #3 from tkoenig at gcc dot gnu dot org 2008-02-02 13:51 --- Subject: Bug 35001 Author: tkoenig Date: Sat Feb 2 13:50:55 2008 New Revision: 132070 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132070 Log: 2008-02-02 Thomas Koenig [EMAIL PROTECTED] PR

[Bug libfortran/35001] shape for negative sizes

2008-02-02 Thread tkoenig at gcc dot gnu dot org
--- Comment #4 from tkoenig at gcc dot gnu dot org 2008-02-02 13:51 --- (In reply to comment #2) Thomas, this is OK to commit since it is fixing a wrong code bug, assuming you have regression tested. (Discussed with Richi on IRC.) Yes, I had done so. Commited to trunk. Thanks!

[Bug target/35045] [4.3 Regression] gcc-4.3 generates wrong code on i386 with -O3

2008-02-02 Thread matz at gcc dot gnu dot org
--- Comment #25 from matz at gcc dot gnu dot org 2008-02-02 15:01 --- Subject: Bug 35045 Author: matz Date: Sat Feb 2 15:00:57 2008 New Revision: 132071 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132071 Log: PR target/35045 * postreload-gcse.c

[Bug target/35045] [4.3 Regression] gcc-4.3 generates wrong code on i386 with -O3

2008-02-02 Thread matz at gcc dot gnu dot org
--- Comment #26 from matz at gcc dot gnu dot org 2008-02-02 15:06 --- Fixed in trunk. Matthias: thanks for the hint with the bugnumber :-) -- matz at gcc dot gnu dot org changed: What|Removed |Added

[Bug c++/35057] New: Integer variable value lost due to optimizations?

2008-02-02 Thread olafvdspek at gmail dot com
Forwarded from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456930 With -O2 it calls bind with 0, without and with -O3 it works fine. Asio is a C++ networking library. $ g++ -I misc -lpthread t.cpp strace ./a.out ... bind(6, {sa_family=AF_INET, sin_port=htons(2711),

[Bug c++/35057] Integer variable value lost due to optimizations?

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #1 from rguenth at gcc dot gnu dot org 2008-02-02 15:23 --- Please provide preprocessed source of your testcase. It is very likely that asio::ip::tcp::endpoint is bogus. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added

[Bug c++/35057] Integer variable value lost due to optimizations?

2008-02-02 Thread olafvdspek at gmail dot com
--- Comment #2 from olafvdspek at gmail dot com 2008-02-02 15:33 --- Created an attachment (id=15078) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15078action=view) Preprocessor output (I hope) I hope -E is the right option. --

[Bug target/11180] [avr-gcc] Optimization decrease performance of struct assignment.

2008-02-02 Thread hutchinsonandy at aim dot com
--- Comment #28 from hutchinsonandy at aim dot com 2008-02-02 15:44 --- The patch and suggestions on this are valid. However, memory moves - particular with base pointers, may require additional instruction to be added to reach required displacments. Splitting such moves may well incur

[Bug middle-end/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread matz at gcc dot gnu dot org
--- Comment #3 from matz at gcc dot gnu dot org 2008-02-02 15:52 --- Reduced by hand: % cat x.cc enum EBorderStyle { bla = 1 }; templatetypename T, typename U inline bool compareEqual(const T t, const U u) { return t == u; } struct S { unsigned m_style : 4; }; void call (S *s,

[Bug middle-end/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenther at suse dot de
--- Comment #4 from rguenther at suse dot de 2008-02-02 15:57 --- Subject: Re: [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621 On Sat, 2 Feb 2008, matz at gcc dot gnu dot org wrote: --- Comment #3 from matz at gcc dot gnu dot org 2008-02-02 15:52 --- Reduced by

[Bug middle-end/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #5 from rguenth at gcc dot gnu dot org 2008-02-02 16:06 --- From the .original dump: ;; Function void call(S*, EBorderStyle) (_Z4callP1S12EBorderStyle) ;; enabled by -tree-original Unknown tree: if_stmt cleanup_point !compareEqual ((const unsigned int ) (const unsigned

[Bug middle-end/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread matz at gcc dot gnu dot org
--- Comment #6 from matz at gcc dot gnu dot org 2008-02-02 16:08 --- (written before richis comment, essentially the same info) The compare routine doesn't need to be a template to show the bug. But it needs to take reference parameters. The difference is in the call. E.g. with this

[Bug middle-end/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #7 from rguenth at gcc dot gnu dot org 2008-02-02 16:15 --- This Index: tree.c === --- tree.c (revision 132071) +++ tree.c (working copy) @@ -417,6 +417,10 @@ build_target_expr_with_type (tree init,

[Bug middle-end/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #8 from rguenth at gcc dot gnu dot org 2008-02-02 16:16 --- The TARGET_EXPR is built via #0 build4_stat (code=TARGET_EXPR, tt=0xb7ce6340, arg0=0xb7ce0160, arg1=0xb7ce10f0, arg2=0x0, arg3=0x0) at /home/richard/src/trunk/gcc/tree.c:3207 #1 0x0825c48e in

[Bug tree-optimization/33761] non-optimal inlining heuristics pessimizes gzip SPEC score at -O3

2008-02-02 Thread hubicka at gcc dot gnu dot org
--- Comment #12 from hubicka at gcc dot gnu dot org 2008-02-02 16:22 --- Created an attachment (id=15079) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15079action=view) address accumulation patch While working on PR17863 I wrote the attached patch to make fwprop to combine code

[Bug c++/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #9 from rguenth at gcc dot gnu dot org 2008-02-02 16:30 --- The correct fix is probably here (convert_like_real): if ((lvalue clk_packed) CLASS_TYPE_P (type) !TYPE_HAS_TRIVIAL_INIT_REF (type)) {

[Bug fortran/19925] Implied do-loop in an initialization expression is broken

2008-02-02 Thread sgk at troutmask dot apl dot washington dot edu
--- Comment #26 from sgk at troutmask dot apl dot washington dot edu 2008-02-02 16:38 --- Subject: Re: Implied do-loop in an initialization expression is broken On Sat, Feb 02, 2008 at 11:09:36AM -, dominiq at lps dot ens dot fr wrote: A short term solution could be to improve

[Bug c/35058] New: -Werror= works only with some warnings

2008-02-02 Thread michaelni at gmx dot at
-Werror=declaration-after-statement and -Werror=pointer-arith only generate warnings not errors. Example - void *a; void *test(){ if(a=a) a++; int x=5; return a+x; } gcc-4.3 -Werror=declaration-after-statement -Werror=pointer-arith testX.c -c -o testX adding

[Bug fortran/35059] New: Seg fault when max constructor limit reached

2008-02-02 Thread jvdelisle at gcc dot gnu dot org
The following gives a segmentation fault with N 65535. This is taken from PR19925 Comment #10. I have the fix for the segfault. INTEGER, PARAMETER :: N=10 INTEGER, PARAMETER :: I(N)=(/(MOD(K,2),K=1,N)/) INTEGER, PARAMETER :: M(N)=I(N:1:-1) END -- Summary: Seg fault when max

[Bug fortran/35059] Seg fault when max constructor limit reached

2008-02-02 Thread jvdelisle at gcc dot gnu dot org
--- Comment #1 from jvdelisle at gcc dot gnu dot org 2008-02-02 17:36 --- Created an attachment (id=15080) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15080action=view) Proposed patch to fix some segfaults This patch avoids the seg fault for the test case in this PR as well as

[Bug c++/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread matz at gcc dot gnu dot org
--- Comment #10 from matz at gcc dot gnu dot org 2008-02-02 17:47 --- A TARGET_EXPR has the following semantics: (1) If it's a RHS of a MODIFY_STMT (or similar), i.e.: lhs = TARGET_EXPRslot, init, cleanup this is (for gimplifying) the same as lhs = init except when

[Bug c++/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread rguenth at gcc dot gnu dot org
--- Comment #11 from rguenth at gcc dot gnu dot org 2008-02-02 18:42 --- Note that I think the FEs should not use the middle-end predicate but instead use the more strict type equality as fold does. But I'll leave that to the FE maintainers to figure out what and where the best fix is

[Bug c/34947] [4.2 Regression] Clobbered float registers not popped

2008-02-02 Thread vincent dot riviere at freesbee dot fr
--- Comment #1 from vincent dot riviere at freesbee dot fr 2008-02-02 19:14 --- The bug is still here in the official 4.2.3 -- vincent dot riviere at freesbee dot fr changed: What|Removed |Added

[Bug fortran/35036] illegal E format descriptor produces wrong output

2008-02-02 Thread jvdelisle at gcc dot gnu dot org
--- Comment #13 from jvdelisle at gcc dot gnu dot org 2008-02-02 19:36 --- Created an attachment (id=15081) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15081action=view) Proposed patch This patch provides an error for precision (number of digits left of decimal point) specified

[Bug rtl-optimization/33410] [4.2/4.3 regression] ICE in iv_analyze_expr, at loop-iv.c:934

2008-02-02 Thread tbm at cyrius dot com
--- Comment #18 from tbm at cyrius dot com 2008-02-02 20:08 --- I see regressions with the patch too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33410

[Bug c/34993] [4.1/4.2 regression] ICE with attribute for array with unknown bound

2008-02-02 Thread rth at gcc dot gnu dot org
--- Comment #5 from rth at gcc dot gnu dot org 2008-02-02 20:42 --- Subject: Bug 34993 Author: rth Date: Sat Feb 2 20:42:10 2008 New Revision: 132073 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=132073 Log: PR c/34993 * tree.c

[Bug c/34993] [4.1/4.2 regression] ICE with attribute for array with unknown bound

2008-02-02 Thread rth at gcc dot gnu dot org
--- Comment #6 from rth at gcc dot gnu dot org 2008-02-02 20:43 --- Fixed. -- rth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED

[Bug c++/33661] template methods forget explicit local reg vars

2008-02-02 Thread vincent dot riviere at freesbee dot fr
--- Comment #2 from vincent dot riviere at freesbee dot fr 2008-02-02 20:48 --- Still fails in GCC release 4.2.3 -- vincent dot riviere at freesbee dot fr changed: What|Removed |Added

[Bug c/35058] -Werror= works only with some warnings

2008-02-02 Thread manu at gcc dot gnu dot org
--- Comment #1 from manu at gcc dot gnu dot org 2008-02-02 21:15 --- Thanks for the report. Any warning that does not show with -fdiagnostics-show-option is very likely to not work with -Werror= and viceversa, so please report all of them that you find. -- manu at gcc dot gnu dot

[Bug fortran/32760] [4.3 Regression] Error defining subroutine named PRINT

2008-02-02 Thread dominiq at lps dot ens dot fr
--- Comment #29 from dominiq at lps dot ens dot fr 2008-02-02 21:31 --- With the patch in http://gcc.gnu.org/ml/fortran/2008-02/msg6.html, I still get an error for the test case in comment #25: pr32760_2.f90:8.29: allocate(s(4), stat=istat, source=t)

[Bug fortran/35036] illegal E format descriptor produces wrong output

2008-02-02 Thread jvdelisle at gcc dot gnu dot org
--- Comment #14 from jvdelisle at gcc dot gnu dot org 2008-02-03 00:06 --- Created an attachment (id=15082) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15082action=view) Revised test case This test case is updated with additional tests. --

[Bug c++/35060] New: typeid(*).name() returns wrong values

2008-02-02 Thread andry at inbox dot ru
/// #include stdio.h #include typeinfo class _A12345 { virtual ~_A12345() {} }; extern C { void foo() { } void foo2() { } } #define ClassName _A12345 int main() { printf(%s\n,typeid(ClassName).name()); printf(%s\n,typeid(foo).name());

[Bug c++/35056] [4.3 Regression] ICE in copy_to_mode_reg, at explow.c:621

2008-02-02 Thread jakub at gcc dot gnu dot org
--- Comment #12 from jakub at gcc dot gnu dot org 2008-02-03 07:48 --- In the FE usually no predicate is used, you just call fold_convert and it will return the second argument if the types match, otherwise add NOP_EXPR or whatever is appropriate around it. The question is just whether