Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Lawrence Crowl
On 5/18/12, Diego Novillo wrote: > So, I would like to figure out what to do with this. We have > a usability problem wrt deubgging that I would like to fix. > The only way we have of using all the tree accessor macros from > GDB is to convert the checks into functions (converting the actual > ac

Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Lawrence Crowl
On 5/17/12, Mike Stump wrote: > On May 17, 2012, at 2:41 PM, Lawrence Crowl wrote: >>> Reusing the compiler for this seems like the only way to go. >>> But, we did look at using g++ to parse C++ expressions from gdb, >>> and it was too slow :-(. We're going to look again, at least to >>> generate

Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Diego Novillo
On 12-05-18 08:23 , Jay Foad wrote: What's wrong with: (check_in_cxx(t), t) ? This evaluates 't' twice. Diego.

Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Diego Novillo
On 12-05-18 18:14 , Richard Henderson wrote: On 05/18/12 05:06, Richard Guenther wrote: Can you locate those? I mean, most uses look like #define DECL_NONSHAREABLE(NODE) \ (TREE_CHECK2 (NODE, VAR_DECL, \ RESULT_DECL)->decl_common.decl_nonshareable_flag) thus they only dere

Re: [Dwarf Patch] Improve pubnames and pubtypes generation. (issue 6197069)

2012-05-18 Thread saugustine
Hi Jasaon, Thanks so much for reviewing this patch. I realize it is a lot to see. The motivation and new dwarf attributes and tags all stem from the debug fission project as described at http://gcc.gnu.org/wiki/DebugFission. I have several more patches dealing with fission coming. Fission has b

Re: [PATCH] ARM/NEON: vld1q_dup_s64 builtin

2012-05-18 Thread Ramana Radhakrishnan
On 16 May 2012 14:51, Christophe Lyon wrote: > On 11.05.2012 16:48, Ramana Radhakrishnan wrote: >> >> I would change the iterator from VQX to VQ in the pattern above (you >> can also simplify the setting of neon_type in that case as well as >> change that to be a vec_duplicate as below and get rid

Re: [Dwarf Patch] Improve pubnames and pubtypes generation. (issue 6197069)

2012-05-18 Thread jason . merrill
This patch makes a lot of changes to the behavior of .debug_pubnames that I haven't seen any discussion of, and that don't seem obvious to me. Can you point me at discussion threads? http://codereview.appspot.com/6197069/diff/1/gcc/dwarf2out.c File gcc/dwarf2out.c (left): http://codereview.app

Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Richard Henderson
On 05/18/12 05:06, Richard Guenther wrote: > Can you locate those? I mean, most uses look like > > #define DECL_NONSHAREABLE(NODE) \ > (TREE_CHECK2 (NODE, VAR_DECL, \ > RESULT_DECL)->decl_common.decl_nonshareable_flag) > > thus they only dereference the result, not assign it an

Re: [PATCH 2/2] SH epilogue unwind, backend parts

2012-05-18 Thread Kaz Kojima
Chung-Lin Tang wrote: > And here are the backend parts for supporting epilogue unwind for SH, > ccing Kaz. Note that this needs the prior dwarf2 pass changes in too, or > else occasional ICEs ensue. > > About the issue on unneeded post-return CFI, mentioned before on > libc-alpha, this patch curr

[google/gcc-4_6] More Fission updates (issue6219049)

2012-05-18 Thread Cary Coutant
This patch is for the google/gcc-4_6 branch. Fission improvements and bug fixes. Adds new DW_OP_GNU_const_index to handle TLS offsets in debug info. Adds -gpubnames/-gno-pubnames options to explicitly request .debug_pubnames/pubtypes sections. Adds style parameter to C/C++ pretty-printer so tha

Re: [patch] Fix debug info of nested inline functions

2012-05-18 Thread Jason Merrill
On 05/18/2012 04:48 PM, Eric Botcazou wrote: Why do you need this change? As long as we're setting DW_AT_inline, it shouldn't matter what its value is. It's 0 for the nested function without it. Ah, I thought that having DW_AT_inline of DW_INL_not_inlined was enough to mark it as an abstrac

Re: [PATCH] Improved re-association of signed arithmetic

2012-05-18 Thread Robert Dewar
On 5/18/2012 4:27 PM, Ulrich Weigand wrote: I finally got some time to look into this in detail. The various special- case transforms in associate_plusminus all transform a plus/minus expression tree into either a single operand, a negated operand, or a single plus or minus of two operands. Th

[patch] Fix PR ada/52362

2012-05-18 Thread Eric Botcazou
Hi, this is a regression present on mainline and 4.7 branch or, more precisely, if you use recent GNU linkers with LTO plugin. During the link phase, gnatlink can decide to use a response file to pass a very long line to the linker. It was actually using a linker script with the GNU linker, b

Re: [google]Backport to enable stack protector for Android targets (issue 6220051)

2012-05-18 Thread shenhan
On 2012/05/18 18:35:32, jingyu wrote: Backport from trunk r187586 http://gcc.gnu.org/ml/gcc-cvs/2012-05/msg00583.html Enable -fstack-protector support for Android targets. The patch only affects targets where __BIONIC__ is defined. Built Android arm toolchain. Would like to commit the pa

Re: [patch] Fix debug info of nested inline functions

2012-05-18 Thread Eric Botcazou
> Why do you need this change? As long as we're setting DW_AT_inline, it > shouldn't matter what its value is. It's 0 for the nested function without it. > If we are looking at the DIE for something from a function in non-unit > scope, this will return comp_unit_die() where previously it would h

[Ada] Fix ICE on constant with record type in LTO mode

2012-05-18 Thread Eric Botcazou
The compiler aborts on the testcase in LTO mode because of a record type with a size expression containing a CALL_EXPR at the global level. The simple fix is to elaborate the size expression like in all the other cases. Tested on i586-suse-linux, applied on the mainline and 4.7 branch. 2012-0

[PATCH] Improved re-association of signed arithmetic (was: Inefficient end-of-loop value computation)

2012-05-18 Thread Ulrich Weigand
Richard Guenther wrote: > On Thu, Mar 8, 2012 at 3:29 PM, Ulrich Weigand wrote: > > - Should I try to improve forwprop to handle casts and additional re- > > association cases until it handles the above expression? > > Yes, ideally by trying to sub-divide this task into separate profitable > tran

Re: [RFA] PowerPC e5500 and e6500 cores support

2012-05-18 Thread Edmar
Michael, Thanks for reviewing the patch and all the suggestions. I have some questions / comments bellow. Regards, Edmar On 05/17/2012 06:16 PM, Michael Meissner wrote: In the patch I minimized the number of changes, while not adding any new mask to target_flags. While we may get some bits

Go patch committed: Fix erroneous use of VEC

2012-05-18 Thread Ian Lance Taylor
This patch to the Go frontend fixes an erroneous use of VEC, pointed out by Diego. The macro magic behind VEC is such that this didn't make any difference. Bootstrapped and tested on x86_64-unknown-linux-gnu. Committed to mainline and 4.7 branch. Ian diff -r 4c5b81b8add0 go/gogo-tree.cc --- a/g

Re: [patch] Fix debug info of nested inline functions

2012-05-18 Thread Jason Merrill
On 05/16/2012 05:29 PM, Eric Botcazou wrote: - if (cgraph_function_possibly_inlined_p (decl)) + if (function_possibly_abstracted_p (decl)) add_AT_unsigned (subr_die, DW_AT_inline, DW_INL_declared_inlined); else add_AT_unsigned (subr_die, DW_AT_inl

[lra] a tiny patch to improve pseudos splitting

2012-05-18 Thread Vladimir Makarov
The following patch improves pseudos splitting. The patch was successfully bootstrapped on x86/x86-64. Committed as rev. 187656. 2012-05-18 Vladimir Makarov * lra-constraints.c (need_for_split_p): Split only when there are at least 3 potential reloads instead of 2. Index:

Re: [google]Backport to enable stack protector for Android targets (issue6220051)

2012-05-18 Thread Diego Novillo
On Fri, May 18, 2012 at 2:35 PM, Jing Yu wrote: > 2012-05-18   Jing Yu   > >        Backport from trunk r187586: >        2012-05-16  Igor Zamyatin   >        * configure.ac: Stack protector enabling for Android targets. >        * configure: Regenerate. OK. Diego.

[google]Backport to enable stack protector for Android targets (issue6220051)

2012-05-18 Thread Jing Yu
Backport from trunk r187586 http://gcc.gnu.org/ml/gcc-cvs/2012-05/msg00583.html Enable -fstack-protector support for Android targets. The patch only affects targets where __BIONIC__ is defined. Built Android arm toolchain. Would like to commit the patch to google/gcc-4_6 and google/gcc-4_6_2-mob

Re: PR middle-end/52584

2012-05-18 Thread David Miller
From: Richard Guenther Date: Fri, 18 May 2012 11:48:55 +0200 (CEST) > On Thu, 17 May 2012, David Miller wrote: > >> >> Richard, I was looking into a testsuite failure on the 4.7 branch >> on sparc and I think your fix for 52584 would fix it too. >> >> The problem eminates in gcc.c-torture/exec

Re: [PATCH] Fix memset recognition, paper over PR53346

2012-05-18 Thread Andi Kleen
Richard Guenther writes: > In PR53346 we vectorize a simple memset loop very inefficiently. > But of course we should have detected this and transformed the > loop into a memset! Seems like we only do that if the original > loop does sth else than memset as well. Is there a way to turn this off

Re: fix install-no-fixedincludes mishaps

2012-05-18 Thread Olivier Hainque
On May 18, 2012, at 17:59 , Paolo Bonzini wrote: >> * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of >> $(libsubdir) as libexecsubdir. > > Yes, ok. FLAGS_TO_PASS is only used by Ada until now. Installed, thanks :)

Re: [PATCH, rs6000] Fix PR53385

2012-05-18 Thread Jakub Jelinek
On Fri, May 18, 2012 at 11:49:41AM -0400, David Edelsohn wrote: > On Fri, May 18, 2012 at 11:00 AM, William J. Schmidt > wrote: > > This repairs the bootstrap issue due to unsafe signed overflow > > assumptions.  Bootstrapped and tested on powerpc64-unknown-linux-gnu > > with no new regressions.  

Re: fix install-no-fixedincludes mishaps

2012-05-18 Thread Paolo Bonzini
Il 18/05/2012 17:34, Olivier Hainque ha scritto: > Hello Paolo, > > On May 16, 2012, at 15:17 , Paolo Bonzini wrote: >>> + install-no-fixedincludes: > ... >>> + $(MAKE) $(FLAGS_TO_PASS) install > > This uncovered a latent problem that my light re-testing after > the apparently innocent switch t

Re: [PATCH, rs6000] Fix PR53385

2012-05-18 Thread David Edelsohn
On Fri, May 18, 2012 at 11:00 AM, William J. Schmidt wrote: > This repairs the bootstrap issue due to unsafe signed overflow > assumptions.  Bootstrapped and tested on powerpc64-unknown-linux-gnu > with no new regressions.  Ok for trunk? > > Thanks, > Bill > > > 2012-05-18  Bill Schmidt   > >    

Re: Symbol table 21/many: analyze initializers of external vars

2012-05-18 Thread Eric Botcazou
> my apologize for the breakage. I somehow missed Ada in --enable-languages > list. I've comitted the following fix that also cures enable checking > failure of g++.dg/torture/pr46154.C No problem, thanks for the quick fix! -- Eric Botcazou

Re: fix install-no-fixedincludes mishaps

2012-05-18 Thread Olivier Hainque
Hello Paolo, On May 16, 2012, at 15:17 , Paolo Bonzini wrote: >> + install-no-fixedincludes: ... >> +$(MAKE) $(FLAGS_TO_PASS) install This uncovered a latent problem that my light re-testing after the apparently innocent switch to a sequence of commands, per http://gcc.gnu.org/ml/gcc-patches/

[PATCH, rs6000] Fix PR53385

2012-05-18 Thread William J. Schmidt
This repairs the bootstrap issue due to unsafe signed overflow assumptions. Bootstrapped and tested on powerpc64-unknown-linux-gnu with no new regressions. Ok for trunk? Thanks, Bill 2012-05-18 Bill Schmidt * config/rs6000/rs6000.c (print_operand): Revise code that unsafely

Re: [PATCH] PR rtl-optimization/53352

2012-05-18 Thread Meador Inge
On 05/18/2012 09:16 AM, H.J. Lu wrote: > On Thu, May 17, 2012 at 1:46 PM, Meador Inge wrote: >> On 05/17/2012 03:02 PM, Richard Sandiford wrote: >> >>> After agonising over this for a couple of days, I think it's probably >>> the correct fix. What we're doing now would be valid if the only use o

Re: [PATCH] PR rtl-optimization/53352

2012-05-18 Thread Meador Inge
On 05/18/2012 09:16 AM, H.J. Lu wrote: > On Thu, May 17, 2012 at 1:46 PM, Meador Inge wrote: >> On 05/17/2012 03:02 PM, Richard Sandiford wrote: >> >>> After agonising over this for a couple of days, I think it's probably >>> the correct fix. What we're doing now would be valid if the only use o

Re: [PATCH] Take branch misprediction effects into account when RTL loop unrolling (issue6099055)

2012-05-18 Thread Teresa Johnson
Ping? Teresa On Fri, May 11, 2012 at 6:11 AM, Teresa Johnson wrote: > Ping? > Teresa > > On Fri, May 4, 2012 at 3:41 PM, Teresa Johnson wrote: >> >> On David's suggestion, I have removed the changes that rename niter_desc >> to >> loop_desc from this patch to focus the patch on the unrolling cha

Re: [PATCH] PR rtl-optimization/53352

2012-05-18 Thread H.J. Lu
On Thu, May 17, 2012 at 1:46 PM, Meador Inge wrote: > On 05/17/2012 03:02 PM, Richard Sandiford wrote: > >> After agonising over this for a couple of days, I think it's probably >> the correct fix.  What we're doing now would be valid if the only use of >> equiv_constant(x) were to substitute for

Re: [RFC] PR 53063 encode group options in .opt files

2012-05-18 Thread Gabriel Dos Reis
On Fri, May 18, 2012 at 4:56 AM, Chung-Lin Tang wrote: > On 2012/5/18 03:26 PM, Gabriel Dos Reis wrote: >> On Fri, May 18, 2012 at 12:48 AM, Chung-Lin Tang >> wrote: >> >>> The point here is that, a group of changes that broke C bootstrap went >>> in undetected for several days, because of the pa

Re: [PATCH] Fix memset recognition, paper over PR53346

2012-05-18 Thread Richard Guenther
On Fri, 18 May 2012, Richard Guenther wrote: > > In PR53346 we vectorize a simple memset loop very inefficiently. > But of course we should have detected this and transformed the > loop into a memset! Seems like we only do that if the original > loop does sth else than memset as well. > > Fixed

[PATCH] Fix gcc.dg/pr53352.c execute fail

2012-05-18 Thread Richard Guenther
Committed as obvious. Richard. 2012-05-18 Richard Guenther * gcc.dg/pr53352.c: Return zero. Index: gcc/testsuite/gcc.dg/pr53352.c === --- gcc/testsuite/gcc.dg/pr53352.c (revision 187652) +++ gcc/testsuite/gcc.dg/pr

Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Jay Foad
On 18 May 2012 12:46, Diego Novillo wrote: > On 12-05-18 06:14 , Richard Guenther wrote: > >> As you retain the macros anyway you can simply not return anything >> from the C++ checking functions define to a stmt expression >> ({ check_in_cxx (t); t; }) > > > Sure, but that takes us back to the or

Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Richard Guenther
On Fri, May 18, 2012 at 1:46 PM, Diego Novillo wrote: > On 12-05-18 06:14 , Richard Guenther wrote: > >> As you retain the macros anyway you can simply not return anything >> from the C++ checking functions define to a stmt expression >> ({ check_in_cxx (t); t; }) > > > Sure, but that takes us bac

Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Diego Novillo
On 12-05-18 06:14 , Richard Guenther wrote: As you retain the macros anyway you can simply not return anything from the C++ checking functions define to a stmt expression ({ check_in_cxx (t); t; }) Sure, but that takes us back to the original gdb issue: it does not understand statement expres

Re: Symbol table 21/many: analyze initializers of external vars

2012-05-18 Thread Jan Hubicka
Hi, my apologize for the breakage. I somehow missed Ada in --enable-languages list. I've comitted the following fix that also cures enable checking failure of g++.dg/torture/pr46154.C Honza * cgraphunit.c (varpool_finalize_decl): Allow external decls. (mark_functions_to_output):

[PATCH] Fix memset recognition, paper over PR53346

2012-05-18 Thread Richard Guenther
In PR53346 we vectorize a simple memset loop very inefficiently. But of course we should have detected this and transformed the loop into a memset! Seems like we only do that if the original loop does sth else than memset as well. Fixed as follows. Bootstrap and regtest on x86_64-unknown-linux-

[PATCH] Fix PR53390

2012-05-18 Thread Richard Guenther
This fixes another fallout of proper strided load support. vect_compute_data_ref_alignment can just bail out for them. Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. Richard. 2012-05-18 Richard Guenther PR tree-optimization/53390 * tree-vect-data-refs.c (vect

[PATCH 2/2] SH epilogue unwind, backend parts

2012-05-18 Thread Chung-Lin Tang
And here are the backend parts for supporting epilogue unwind for SH, ccing Kaz. Note that this needs the prior dwarf2 pass changes in too, or else occasional ICEs ensue. About the issue on unneeded post-return CFI, mentioned before on libc-alpha, this patch currently does produce such directives.

[PATCH 1/2] SH epilogue unwind, dwarf2 pass changes

2012-05-18 Thread Chung-Lin Tang
Hi, I found a few changes were needed to the dwarf2 pass when trying to implement epilogue unwind for SH, mainly that the current handling of annulled-taken branches does not seem correct; the delay slot insn should be handled in a manner similar to an insn in the fallthru block. Cross-tested on

Re: Symbol table 21/many: analyze initializers of external vars

2012-05-18 Thread Jan Hubicka
/ada/ali.adb > -o > ada/ali.o > +===GNAT BUG DETECTED==+ > | 4.8.0 20120518 (experimental) [trunk revision 187647] (i586-suse-linux) GCC > error:| > | in function_and_variable_visibility, at ipa.c:918| &g

Re: Symbol table 21/many: analyze initializers of external vars

2012-05-18 Thread Eric Botcazou
=GNAT BUG DETECTED==+ | 4.8.0 20120518 (experimental) [trunk revision 187647] (i586-suse-linux) GCC error:| | in function_and_variable_visibility, at ipa.c:918| | Error detected around /home/eric/svn/gcc/gcc/ada/ali.adb:2499:1 Note that the bootstrap is

Re: Symbol table 21/many: analyze initializers of external vars

2012-05-18 Thread Jan Hubicka
> > The problem here seems to be that Ada constructs an variable that is > > DECL_EXTERNAL, passes const_value_known_p and has DECL_INITIAL, yet its > > TREE_STATIC is not set. C++ always output those variables with TREE_STATIC > > set and to be honest, I am unsure what is intended semantics of thi

Re: Symbol table 21/many: analyze initializers of external vars

2012-05-18 Thread Eric Botcazou
> The problem here seems to be that Ada constructs an variable that is > DECL_EXTERNAL, passes const_value_known_p and has DECL_INITIAL, yet its > TREE_STATIC is not set. C++ always output those variables with TREE_STATIC > set and to be honest, I am unsure what is intended semantics of this flag >

Re: Symbol table 21/many: analyze initializers of external vars

2012-05-18 Thread Jan Hubicka
ata -W -Wall -nostdinc -I- -I. -Iada -I/home/eric/svn/gcc/gcc/ada > -I/home/eric/svn/gcc/gcc/ada/gcc-interface /home/eric/svn/gcc/gcc/ada/ali.adb > -o > ada/ali.o > +===GNAT BUG DETECTED==+ > | 4.8.0 20120518 (experimental) [trunk re

Re: Turn check macros into functions. (issue6188088)

2012-05-18 Thread Richard Guenther
On Thu, May 17, 2012 at 8:36 PM, Diego Novillo wrote: > On 12-05-17 10:52 , Michael Matz wrote: > >> Cross the bridge when you reach it, not before.  Not everybody agrees that >> the splitting of tree would be a good idea.  Right now templates aren't >> necessary, so you shouldn't use them.  (well

Re: [PATCH] Simplify attempt_builtin_powi logic

2012-05-18 Thread Richard Guenther
On Thu, 17 May 2012, William J. Schmidt wrote: > This patch gives up on using the reassociation rank algorithm to > correctly place __builtin_powi calls and their feeding multiplies. In > the end this proved to introduce more complexity than it saved, due in > part to the poor fit of introducing

Re: Ping (Was: Speed up insn-attrtab.c compilation)

2012-05-18 Thread Richard Guenther
On Thu, May 17, 2012 at 4:40 PM, Michael Matz wrote: > Ping. Ok. Thanks, Richard. > On Tue, 8 May 2012, Michael Matz wrote: > >> Hi, >> >> On Mon, 7 May 2012, Mike Stump wrote: >> >> > On May 7, 2012, at 6:11 AM, Michael Matz wrote: >> > > I'd like to retain the #if 0 code therein, >> > >> > Ca

Re: [RFC] PR 53063 encode group options in .opt files

2012-05-18 Thread Chung-Lin Tang
On 2012/5/18 03:26 PM, Gabriel Dos Reis wrote: > On Fri, May 18, 2012 at 12:48 AM, Chung-Lin Tang > wrote: > >> The point here is that, a group of changes that broke C bootstrap went >> in undetected for several days, because of the partially C++ default. To >> prevent that in the future, we shou

Re: PR middle-end/52584

2012-05-18 Thread Richard Guenther
On Thu, 17 May 2012, David Miller wrote: > > Richard, I was looking into a testsuite failure on the 4.7 branch > on sparc and I think your fix for 52584 would fix it too. > > The problem eminates in gcc.c-torture/execute/vector-shift2.c with -O0 > > The 4 integer vector shifts get lowered to 2

Re: Fix folding through externally keyed vtables

2012-05-18 Thread Richard Guenther
On Wed, 16 May 2012, Jan Hubicka wrote: > Hi, > currently build of Mozilla with -flto-partition=none fails at: > /tmp/ccQ0smdA.ltrans3.ltrans.o:ccQ0smdA.ltrans3.o:function > scriptableInvokeDefault(NPObject*, _NPVariant const*, unsigned int, > _NPVariant*) [clone .part.84.4761]: error: undefi >

Re: Symbol table 21/many: analyze initializers of external vars

2012-05-18 Thread Eric Botcazou
ace /home/eric/svn/gcc/gcc/ada/ali.adb -o ada/ali.o +===GNAT BUG DETECTED==+ | 4.8.0 20120518 (experimental) [trunk revision 187647] (i586-suse-linux) GCC error:| | in varpool_finalize_decl, at cgraphunit.c:822| | Er

Re: [PATCH][ARM] Improve 64-bit shifts (non-NEON)

2012-05-18 Thread Andrew Stubbs
On 16/05/12 17:43, Ramana Radhakrishnan wrote: OK (if no regressions). Cross tested with no regressions, and committed. Thanks Andrew

Re: [patch] More thorough checking in reg_fits_class_p

2012-05-18 Thread Richard Sandiford
Jim MacArthur writes: > On 02/05/12 14:55, Richard Sandiford wrote: >> Richard Earnshaw writes: >>> On 02/05/12 14:00, Richard Sandiford wrote: Jim MacArthur writes: > New Changelog text: > > 2012-05-02 Jim MacArthur > * recog.c (reg_fits_class_p): Check both regno and regno

Re: [PATCH] PR rtl-optimization/53352

2012-05-18 Thread Richard Sandiford
Meador Inge writes: > v2 OK? If so, would you mind committing for me? I don't have write access. Applied, thanks. (BTW, I removed the brackets around the new condition.) Richard

Re: [RFC] PR 53063 encode group options in .opt files

2012-05-18 Thread Gabriel Dos Reis
On Fri, May 18, 2012 at 12:48 AM, Chung-Lin Tang wrote: > The point here is that, a group of changes that broke C bootstrap went > in undetected for several days, because of the partially C++ default. To > prevent that in the future, we should enforce similar checking in both C > and C++. As opp