[Bug libstdc++/22200] numeric_limitssigned::is_modulo is inconsistent with gcc

2010-02-21 Thread gdr at integrable-solutions dot net


--- Comment #37 from gdr at integrable-solutions dot net  2010-02-21 18:04 
---
Subject: Re:  numeric_limitssigned::is_modulo is 
inconsistent with gcc

On Sun, Feb 21, 2010 at 7:04 AM, rguenth at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org wrote:

 Or suspend it.  I think this warrants a defect report anyway since I think
 is_modulo was intended to describe CPU behavior as otherwise defining
 signed integer overflow as undefined in one piece of the standard and
 then requiring a sane answer for is_modulo in another part sounds
 like a conflict of interest.

is_modulo is intended to describe the implementation's choice, not necessarily
the CPU behaviour (which the implementation may choose to mask or not.)

The issue here is that GCC does not always deliver the CPU behaviour, so it
is more a problem with GCC than with the standard.

Users who want to make incompatible assumptions about types in the same program
deserve what they get.


-- 


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



[Bug libstdc++/22200] numeric_limitssigned::is_modulo is inconsistent with gcc

2010-02-21 Thread gdr at integrable-solutions dot net


--- Comment #39 from gdr at integrable-solutions dot net  2010-02-21 18:50 
---
Subject: Re:  numeric_limitssigned::is_modulo is 
inconsistent with gcc

On Sun, Feb 21, 2010 at 12:20 PM, veksler at il dot ibm dot com
gcc-bugzi...@gcc.gnu.org wrote:
 --- Comment #38 from veksler at il dot ibm dot com  2010-02-21 18:20 
 ---
 (In reply to comment #37)

 is_modulo is intended to describe the implementation's choice, not 
 necessarily
 the CPU behaviour (which the implementation may choose to mask or not.)

 The issue here is that GCC does not always deliver the CPU behaviour, so it
 is more a problem with GCC than with the standard.

 Users who want to make incompatible assumptions about types in the same 
 program
 deserve what they get.


 This is not that simple. libstdc++.so is out of user's control,
 libkde.so (or whatever its name is) is out of user's control.

Agreed.


 So if -fwrapv affects the definition of is_modulo then:


so the issue then is that you get two people who make incompatible
assumptions about the same type for the same program.  If that is
case, I'm not sure what libstdc++ would have to do.  After all, the resulting
program is out of the control of libstdc++.

 If libstdc++.so is compiled without -fwrapv, then the user can't
 use -fwrapv without a potential ODR violation.

agreed.

 What if libkde.so,
 which is supplied by a third party, was compiled with -fwrapv, while
 libsdc++.so was compiled by some sysadmin, accessible through NFS.

agreed.

 They must be compiled with exactly the same flags, both out of user's control,
 otherwise they'll cause an ODR violation.

 Having is_modulo lie looks not as bad as it initially seemed. At least I have
 the option to ignore is_modulo altogether without going to the land of
 undefined behavior.

my conclusion would be that is_modulo is not the right interface to
test whether a component in the program was compiled with -fwrapv.


-- 


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



[Bug c++/43108] mixed complexT multiplication horribly inefficient

2010-02-17 Thread gdr at integrable-solutions dot net


--- Comment #25 from gdr at integrable-solutions dot net  2010-02-18 04:55 
---
Subject: Re:  mixed complexT multiplication horribly 
inefficient

On Wed, Feb 17, 2010 at 4:54 PM, jan at epgmod dot phys dot tue dot nl
gcc-bugzi...@gcc.gnu.org wrote:
 --- Comment #13 from jan at epgmod dot phys dot tue dot nl  2010-02-17 
 22:54 ---
 (In reply to comment #10)
 Regarding the specific semantics, Richard, there is little to say: we want 
 the
 C99 semantics, by and large. Maybe there are some missing details, but we
 decided already that, when we switched the complex multiplication to be the
 slow, C99 annex, by default. Thus, in a first, and second too, approx, the 
 C++
 standard doesn't count, really, this is just, sketched:

    __complex__ double val;
    double d;
    val *= d;


 But the point in question is that gcc *does not implement Annex G-4.1 (item 2)
 correctly*. That clearly states that u*(x+iy) = (ux)+i(uy), whereas gcc does
 (u+0i)*(x+iy), leading to wrongly signed zeros. The patch fixes exactly that
 (for C++) by circumventing gcc's flawed implementation of mixed arithmetic
 involving C99's complex type.

then, the proper fix is to fix should be in the compiler.  Not in the library.


-- 


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



[Bug c++/43108] mixed complexT multiplication horribly inefficient

2010-02-17 Thread gdr at integrable-solutions dot net


--- Comment #26 from gdr at integrable-solutions dot net  2010-02-18 04:56 
---
Subject: Re:  mixed complexT multiplication horribly 
inefficient

On Wed, Feb 17, 2010 at 4:27 PM, paolo dot carlini at oracle dot com
gcc-bugzi...@gcc.gnu.org wrote:
 --- Comment #9 from paolo dot carlini at oracle dot com  2010-02-17 22:27 
 ---
 To be clear, once more: the proposed change has been suggested *already* and
 rejected, being something which the compiler should be perfectly able to 
 figure
 out, when legal according to the optimization options. Thus, unless Gaby says
 something different, the proposed patch will *not* go in.

If there is any fix, it should be in the compiler.
std::complexT is just a simple notation around _Complex T, for scalar T.


-- 


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



[Bug c++/43108] mixed complexT multiplication horribly inefficient

2010-02-17 Thread gdr at integrable-solutions dot net


--- Comment #27 from gdr at integrable-solutions dot net  2010-02-18 04:59 
---
Subject: Re:  mixed complexT multiplication horribly 
inefficient

On Wed, Feb 17, 2010 at 3:24 PM, paolo dot carlini at oracle dot com
gcc-bugzi...@gcc.gnu.org wrote:
 --- Comment #2 from paolo dot carlini at oracle dot com  2010-02-17 21:24 
 ---
 I don't see why you want to deal with special cases in the library instead of
 the optimizers: indeed, your *very* analysis shows that the missed 
 optimization
 is happening in tree-complex.c and improving it would benefit *many* more uses
 outside the library. Actually, I'm pretty sure we rejected already proposals 
 to
 change complex to deal more explicitly with special cases...

 Anyway, Gaby, can you please comment on this issue?

I agree with your comments.  From my point of view, the fix should
be in the compiler.

PS:  I was away from mail for a good part of the day.  I'm catching up.


-- 


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



[Bug libstdc++/9679] Strange behaviour of valarray::apply method

2010-02-12 Thread gdr at integrable-solutions dot net


--- Comment #13 from gdr at integrable-solutions dot net  2010-02-12 11:06 
---
Subject: Re:  Strange behaviour of valarray::apply method

On Thu, Feb 11, 2010 at 6:22 PM, paolo dot carlini at oracle dot com
gcc-bugzi...@gcc.gnu.org wrote:
 --- Comment #11 from paolo dot carlini at oracle dot com  2010-02-12 
 00:22 ---
 Thanks. Thus, would you support closing this as WONTFIX?

if that is agreable to you, that is fine by me.

-- Gaby


-- 


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



[Bug libstdc++/9679] Strange behaviour of valarray::apply method

2010-02-11 Thread gdr at integrable-solutions dot net


--- Comment #10 from gdr at integrable-solutions dot net  2010-02-12 00:20 
---
Subject: Re:  Strange behaviour of valarray::apply method

On Thu, Feb 11, 2010 at 6:08 PM, paolo dot carlini at oracle dot com
gcc-bugzi...@gcc.gnu.org wrote:
 --- Comment #9 from paolo dot carlini at oracle dot com  2010-02-12 00:08 
 ---
 Gaby, any chance you can give me some guidance about this issue? What do you
 think should we do now? The PR remained in limbo for way too much time, in my
 opinion. Thanks in advance.

at the moment, I believe fixing this means throwing away the
current valarray implementation.  I'm fine with that if someone
proposes a better implementation performance-wise.

Personal opinion: I do not think that the case submitted is
an examplar of the usage envisioned for valarray.  If you want
to take address into a valarray object, create a valarray object.
Don't stick references into the middle temporaries.
But, that is - again - a personal opinion.

-- Gaby


-- 


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



[Bug libstdc++/27340] valarray uses __cos which may conflict with libm functions

2010-02-06 Thread gdr at integrable-solutions dot net


--- Comment #15 from gdr at integrable-solutions dot net  2010-02-06 22:21 
---
Subject: Re:  valarray uses __cos which may conflict with 
libm functions

On Sat, Feb 6, 2010 at 2:44 PM, paolo dot carlini at oracle dot com
gcc-bugzi...@gcc.gnu.org wrote:
 --- Comment #14 from paolo dot carlini at oracle dot com  2010-02-06 
 20:44 ---
 Done.

Thanks, Paolo.

-- Gaby


-- 


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



[Bug libstdc++/7439] C99 compat: Can't use the name INFINITY in an enum.

2009-01-26 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2009-01-27 03:34 
---
Subject: Re:  C99 compat: Can't use the name INFINITY in 
an enum.

On Mon, Jan 26, 2009 at 6:19 PM, bkoz at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org

 Thus, I am going to close this as WONTFIX. For C++0x, the case is INVALID, and
 for open gcc branches the bug status is FIXED.

 Gaby, if I'm off on this please re-open.

 -benjamin

I fully agree with your resolution.


-- 


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



[Bug c++/31246] -Wunreachable-code warnings for compiler-generated code

2008-08-25 Thread gdr at integrable-solutions dot net


--- Comment #26 from gdr at integrable-solutions dot net  2008-08-26 05:45 
---
Subject: Re:  Strange -Wunreachable-code warning with _GLIBCXX_DEBUG

On Sat, Aug 23, 2008 at 1:43 PM, paolo dot carlini at oracle dot com
[EMAIL PROTECTED] wrote:
 --- Comment #23 from paolo dot carlini at oracle dot com  2008-08-23 
 18:43 ---
 To be clear, there are no #pragma GCC system_header at all in the entire
 libsupc++ directory. I hope we don't have to begin...

I think I agree.


-- 


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



[Bug libstdc++/30416] SIGSEGV in valarray::cshift(n) on empty array

2007-01-12 Thread gdr at integrable-solutions dot net


--- Comment #15 from gdr at integrable-solutions dot net  2007-01-12 13:06 
---
Subject: Re:  SIGSEGV in valarray::cshift(n) on empty array

paolo at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Subject: Bug 30416
| 
| Author: paolo
| Date: Fri Jan 12 11:09:26 2007
| New Revision: 120720
| 
| URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=120720
| Log:
| 2007-01-12  Paolo Carlini  [EMAIL PROTECTED]

Paolo --

  Your patch had issues I just commented on.

I expected you'd have waited for me to review it.  :-(
I was travelling back to CS all day yesterday.

-- Gaby


-- 


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



[Bug libstdc++/30416] SIGSEGV in valarray::cshift(n) on empty array

2007-01-10 Thread gdr at integrable-solutions dot net


--- Comment #12 from gdr at integrable-solutions dot net  2007-01-10 23:27 
---
Subject: Re:  SIGSEGV in valarray::cshift(n) on empty array

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| Forgot: assuming we imagine the standard clarified per your proposal
| on LWG (or read as such for all practical matters), I understand
| that not segfaulting when size == 0 would be a conforming
| behavior.

Yes, it is interesting to note that a specific request to make the
standard much clearer on the semantics is curiously construed as an
argument for arguing that the standard says the beahviour is undefined.
No wonder.

-- Gaby


-- 


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



[Bug other/29694] missed warnings about comparisons which are always true/false.

2007-01-09 Thread gdr at integrable-solutions dot net


--- Comment #4 from gdr at integrable-solutions dot net  2007-01-09 18:41 
---
Subject: Re:  missed warnings about comparisons which are always true/false.

manu at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Wextra warns for this, what is the bug?

I believe pluto wants -Walways-true to cover this.

-- Gaby


-- 


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



[Bug c++/27975] warning for comparison of different enum types impossible to control/is undocumented

2007-01-09 Thread gdr at integrable-solutions dot net


--- Comment #5 from gdr at integrable-solutions dot net  2007-01-09 18:43 
---
Subject: Re:  warning for comparison of different enum types impossible to
control/is undocumented

manu at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| What name do you want for the warning? Wenum-mismatch ?

I believe we must watch for the inflation of -Wswitches.  This
particular request is part of a more general problem that can is dealt
with elsewhere.

-- Gaby


-- 


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



[Bug c++/27975] warning for comparison of different enum types impossible to control/is undocumented

2007-01-09 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2007-01-09 18:44 
---
Subject: Re:  warning for comparison of different enum types impossible to
control/is undocumented

manu at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| I could also add it to the new -Wconversion option.

I believe this is the way to go.

-- Gaby


-- 


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



[Bug libstdc++/30416] SIGSEGV in valarray::cshift(n) on empty array

2007-01-09 Thread gdr at integrable-solutions dot net


--- Comment #2 from gdr at integrable-solutions dot net  2007-01-09 22:05 
---
Subject: Re:   New: SIGSEGV in valarray::cshift(n) on empty array

sebor at roguewave dot com [EMAIL PROTECTED] writes:

| AFAIK, the program below should have well-defined behavior but it abends with
| gcc 4.1.0 on Solaris 9.

Why do you think it should have well-dfeined behaviour?

-- Gaby


-- 


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



[Bug libstdc++/30416] SIGSEGV in valarray::cshift(n) on empty array

2007-01-09 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2007-01-10 03:32 
---
Subject: Re:  SIGSEGV in valarray::cshift(n) on empty array

chris at bubblescope dot net [EMAIL PROTECTED] writes:

| The standard refers to (l+n)%size(), so if size()=0, that seems to be
| undefined. On the other hand, it seems fairly obvious what should happen in
| this case (ie nothing).

On the other other hand [semi ;-)], even without resorting to
undefinedness of % size(), it takes a special rule to define the
cyclic rotation of nothing.  I don't see that special rule, which is
why I asked why it was obvious that the result it well-defined.

| On an unrelated note, isn't there a another bug in the standard here, as it
| seems to be assuming that (-1)%n = (n-1) for positive n, which isn't required
| by the standard?

the c in cshift stands for cyclic, and yes the standard should have
described the behviour in terms of cyclic permutation instead of
showing an implementation.

-- Gaby


-- 


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



[Bug libstdc++/30416] SIGSEGV in valarray::cshift(n) on empty array

2007-01-09 Thread gdr at integrable-solutions dot net


--- Comment #7 from gdr at integrable-solutions dot net  2007-01-10 03:33 
---
Subject: Re:  SIGSEGV in valarray::cshift(n) on empty array

sebor at roguewave dot com [EMAIL PROTECTED] writes:

| (In reply to comment #3)
|  The standard refers to (l+n)%size(), so if size()=0, that seems to be
|  undefined. On the other hand, it seems fairly obvious what should happen in
|  this case (ie nothing).
| 
| The requirement is to return an object of length size() each of whose
| elements... If there are no elements the ... doesn't/cannot apply. 

I disagree.  The specification is not that of unconditional return.
And if that is what is intended, then that is not what the standard wrote.

-- Gaby


-- 


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



[Bug libstdc++/30416] SIGSEGV in valarray::cshift(n) on empty array

2007-01-09 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2007-01-10 03:37 
---
Subject: Re:  SIGSEGV in valarray::cshift(n) on empty array

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| Well, IMHO, avoiding this SIGSEGV is so easy, I would change anyway both
shift
| and cshift (i.e., wrap everything in a check that size()  0), and be done
with
| it, if nobody strongly disagree... 

Paolo -- there is what the standard says, and what we can or should implement.
I believe there is a genuine bug in the standard here, no matter how
easy it is to avoid the segmentation fault.  This specific corner case is
most likely run into in testsuites; we better have the standard be
clear and let the testsuite implement what the standard says.

-- Gaby


-- 


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



[Bug target/8512] [hppa64-hp-hpux11.11] libstdc++-v3 fails to build with HP assembler

2007-01-08 Thread gdr at integrable-solutions dot net


--- Comment #9 from gdr at integrable-solutions dot net  2007-01-09 05:28 
---
Subject: Re:  [hppa64-hp-hpux11.11] libstdc++-v3 fails to build with HP
assembler

jbuck at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| We might just document that it doesn't work for 4.0.4 assuming we do
| that, and close the bug.

That is fine with me.

-- Gaby


-- 


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



[Bug middle-end/30364] [4.1/4.2/4.3 Regression] Wrong variable ranges due to constant folding

2007-01-05 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2007-01-05 21:06 
---
Subject: Re:  [4.1/4.2/4.3 Regression] Wrong variable ranges due to constant
folding

jakub at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Do the parenthesis matter in C?

Yes, see paragraphes 11 dowward in the section 5.1.2.3.

|  They do matter in say Fortran, but in C I
| think
| (a - 20) + (b - 20) can be evaluated as (a + b) + (-20 + -20) or a - 20 - 20
+
| b

while that is permitted by the fortran standard, it is my understanding
that *existing* practice has fortran compilers refrain from messing
with parenthesis.

However, this has become a middle-end issue; so I guess I must voice
the concern for languages where unconditional re-association is not
permitted.  The C and C++ languages are example of those.


-- Gaby


-- 


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



[Bug middle-end/30364] [4.1/4.2/4.3 Regression] Wrong variable ranges due to constant folding

2007-01-05 Thread gdr at integrable-solutions dot net


--- Comment #9 from gdr at integrable-solutions dot net  2007-01-05 21:09 
---
Subject: Re:  [4.1/4.2/4.3 Regression] Wrong variable ranges due to constant
folding

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:


[...]

| That is most explict thing about overflow and groupping.  In C, every
| expression has an implicate parenthesises.

Yes.

Note. however, that if people don't insist on signed integer
arithmetic overflow being undefined, but intead define it as wrapping,
they can reassociate and as they wish and the result won't change.

-- Gaby


-- 


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



[Bug c/30368] wrong result

2007-01-05 Thread gdr at integrable-solutions dot net


--- Comment #4 from gdr at integrable-solutions dot net  2007-01-05 21:11 
---
Subject: Re:  wrong result

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

|  anther, consider an example definite[2] of 'offsetof', if you think
|  that is undefined, it's almost impossible to give a definite of
|  offsetof.
| 
|  #define offsetof(TYPE,MEMBER)   ((size_t)((TYPE*)0)-MEMBER)
| 
| The C standard still says that is undefined.  See 6.5.3.2/4.
| Also GCC has a builtin for offsetof to get around the undefinedness of the
| above.

The C front-end should probably warn -- the C++ front-end does.


-- Gaby


-- 


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



[Bug libstdc++/30365] No possibility to disable large file support (LFS)

2007-01-04 Thread gdr at integrable-solutions dot net


--- Comment #26 from gdr at integrable-solutions dot net  2007-01-05 07:02 
---
Subject: Re:  No possibility to disable large file support (LFS)

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| I really don't think turning off LFS and using libstdc++ is a good idea
anyways
| because STL just bloats things anyways.

Where is the connection?

-- Gaby


-- 


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



[Bug c++/30340] pure virtual function called on const declared with previous declaration without a definition, const assigned by temporary

2007-01-02 Thread gdr at integrable-solutions dot net


--- Comment #9 from gdr at integrable-solutions dot net  2007-01-02 11:49 
---
Subject: Re:  pure virtual function called on const  declared with previous
declaration without a definition, const  assigned by temporary

mjtruog at fastmail dot ca [EMAIL PROTECTED] writes:

| Thank you for looking at this.  My mistake.

[...]

|What|Removed |Added
| 
|Severity|normal  |critical

So, why did you raise this PR to critical?

-- Gaby


-- 


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



[Bug c++/30348] '#define false FALSE' undefines '#define FALSE false'

2007-01-02 Thread gdr at integrable-solutions dot net


--- Comment #5 from gdr at integrable-solutions dot net  2007-01-02 12:02 
---
Subject: Re:   New: '#define false FALSE' undefines '#define FALSE false'

h8_spam at sonic dot net [EMAIL PROTECTED] writes:

| I ran into an issue where doing #define FALSE false followed by #define false
| FALSE undefined the first FALSE which is not what I would expect.
| 
| Perhaps this is part of the standard, but in case not, I'm reporting it.

During the translation phases 3-6, `true' and `false' are pp-tokens
with special meanings.  See 16.1/4.

I don't know how common this PR is, to warrant a warning. 

-- Gaby


-- 


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



[Bug c++/30348] '#define false FALSE' undefines '#define FALSE false'

2007-01-02 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2007-01-02 12:05 
---
Subject: Re:  '#define false FALSE' undefines '#define FALSE false'

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| --- Comment #1 from pinskia at gcc dot gnu dot org  2007-01-01 22:34
---
| so what is happening here is the following:
| 
| #define FALSE false
| #define false FALSE
| 
| bool a = FALSE;
| 
| So we get again:
| bool a = FALSE;
| 
| 
| This is the same problem as:
| int b;
| 
| #define a b
| #define b a
| 
| int main() {
|   int test2 = a;
| }
| 
| also true/false are not defined in C++ but rather they are keywords

`true' and `false' have special meanings, in C++, during
pre-processing phases.  They can be used in the condition for
conditional inclusion, for example.  Consequently, I don't think it is
valid to 

   #define false something

just like

   #define 0 something

would be invalid.

-- Gaby


-- 


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



[Bug c++/30348] '#define false FALSE' undefines '#define FALSE false'

2007-01-02 Thread gdr at integrable-solutions dot net


--- Comment #7 from gdr at integrable-solutions dot net  2007-01-02 12:06 
---
Subject: Re:  '#define false FALSE' undefines '#define FALSE false'

h8_spam at sonic dot net [EMAIL PROTECTED] writes:

| Right, but since true and false are keywords, I would expect the #define true
| TRUE and false FALSE to be no-ops.

I don't follow.  Please see 16.1.

-- Gaby


-- 


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



[Bug c++/30348] '#define false FALSE' undefines '#define FALSE false'

2007-01-02 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2007-01-02 12:08 
---
Subject: Re:  '#define false FALSE' undefines '#define FALSE false'

pinskia at gmail dot com [EMAIL PROTECTED] writes:

| Subject: Re:  '#define false FALSE' undefines '#define FALSE
| false'
| 
| On Mon, 2007-01-01 at 22:43 +, h8_spam at sonic dot net wrote:
|  Right, but since true and false are keywords, I would expect the
|  #define true
|  TRUE and false FALSE to be no-ops.
| 
| 
| How?  Preprocessing happens before tokenazation happens.

Right; however `true' and `false' are also pp-tokens with special meanings
during pre-processing.  
Therefore I think the PR is invalid, but you have to double-check that
with a CPP expert.


-- Gaby


-- 


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



[Bug c++/28986] Failure to diagnose overflow in constant expression

2007-01-02 Thread gdr at integrable-solutions dot net


--- Comment #7 from gdr at integrable-solutions dot net  2007-01-02 23:33 
---
Subject: Re:  Failure to diagnose overflow in constant expression

andrew dot stubbs at st dot com [EMAIL PROTECTED] writes:

| --- Comment #6 from andrew dot stubbs at st dot com  2007-01-02 14:04
---
| (In reply to comment #5)
|  Why is this accepts-invalid? Shouldn't it be diagnostic instead? I am
|  trying to understand what is the expected output here: a warning or a
pedantic
|  error? 
| 
| Clause 5 paragraph 5 says it is ill-formed. Therefore accepts-invalid
sounds
| right to me.

In C++, ill-formed implies diagnostic is required unless
explicitly noted otherwise. 

-- Gaby


-- 


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



[Bug c++/30340] pure virtual function called on const declared with previous declaration without a definition, const assigned by temporary

2007-01-01 Thread gdr at integrable-solutions dot net


--- Comment #5 from gdr at integrable-solutions dot net  2007-01-01 09:47 
---
Subject: Re:  pure virtual function called on const  declared with previous
declaration without a definition, const  assigned by temporary

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| For the last question on this code:
| C c(1, B());
| 
| What is the life time of the temp that holds B()?

That temporary is destroyed at the of the declaration of c --
e.g. right before the semicolon if I'm allowed that expression.

-- Gaby


-- 


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



[Bug libstdc++/30280] SIGSEGV on operator==(valarraybool, bool)

2006-12-23 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2006-12-23 11:17 
---
Subject: Re:  SIGSEGV on operator==(valarraybool, bool)

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| What target is this one, all I get is:
| t.cc:8: error: cannot convert 'std::_Exprstd::_UnClosstd::__logical_not,
| std::_Expr, std::_UnClosstd::__logical_not, std::_Expr,
| std::_BinClosstd::__equal_to, std::_ValArray, std::_Constant, bool, bool 
,
| bool' to 'long int' for argument '1' to 'long int __builtin_expect(long int,
| long int)'

I don't remember I ever used this funky __builtin_expect.  
valarray is improving everyday :-(

-- Gaby


-- 


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



[Bug target/30280] SIGSEGV on operator==(valarraybool, bool)

2006-12-23 Thread gdr at integrable-solutions dot net


--- Comment #13 from gdr at integrable-solutions dot net  2006-12-24 05:23 
---
Subject: Re:  SIGSEGV on operator==(valarraybool, bool)

pinskia at gmail dot com [EMAIL PROTECTED] writes:

| --- Comment #9 from pinskia at gmail dot com  2006-12-23 18:50 ---
| Subject: Re:  SIGSEGV on operator==(valarraybool,
| bool)
| 
| On Sat, 2006-12-23 at 11:17 +, gdr at integrable-solutions dot net
| wrote:
|  
|  I don't remember I ever used this funky __builtin_expect.  
|  valarray is improving everyday :-(
| 
| 
| You most likely did not but assert did :).

Doh.  You're right;


-- 


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



[Bug c++/29618] argument dependent lookup: what about built-in types?

2006-10-27 Thread gdr at integrable-solutions dot net


--- Comment #4 from gdr at integrable-solutions dot net  2006-10-28 03:19 
---
Subject: Re:  argument dependent lookup: what about built-in types?

v dot vasaitis at sms dot ed dot ac dot uk [EMAIL PROTECTED] writes:

|   Interesting analysis. However, wouldn't this imply that the example I
posted
| could be made to work if hash_value(long long) were put inside the boost
| namespace?

I don't see why.

| Because it doesn't really; and in fact I can't find any way to make
| it work, and I'd be grateful if you could point one out to me.

the bugdatabase is about defects in the compiler suite, not about
asking help to fix your programs.  Please do not reopen bugs for the
sole purpose of  getting answers to questions that are best sent to
appropriate newgroups.

-- Gaby


-- 


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



[Bug libstdc++/25608] g++ miscompiles gcjx

2006-10-24 Thread gdr at integrable-solutions dot net


--- Comment #21 from gdr at integrable-solutions dot net  2006-10-24 06:18 
---
Subject: Re:  g++ miscompiles gcjx

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| Gaby, any news about this issue?

gcjx has been declared dead.  I never got to have the issue fixed.
So, it is up to you.  It was a blocking issue for work on gcjx, and
since the latter no longer exists it is less of an issue.

-- Gaby


-- 


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



[Bug c++/29455] Issues with -Wchar-subscripts

2006-10-24 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2006-10-24 06:32 
---
Subject: Re:   New: Issues with -Wchar-subscripts

h dot b dot furuseth at usit dot uio dot no [EMAIL PROTECTED]
writes:

| [This is both a C and C++ bug report, not sure how to classify that.]
| 
| int a[256];
| int A(char c) { return a[c];  } // C and C++ warnings, OK.

OK.

| int D(void)   { return a['%'];} // Spurious C++ warning, no C warning

The absence of warning in C is OK -- literal characters have type int
in C.  The warning in C++ is arguably bogus because the value of the
character '%' is known at compile-time, consequently the warning is
unwarranted (unless it really is negative).

-- Gaby


-- 


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



[Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should

2006-10-24 Thread gdr at integrable-solutions dot net


--- Comment #24 from gdr at integrable-solutions dot net  2006-10-24 06:53 
---
Subject: Re:  [4.0/4.1/4.2 Regression] placement new does not change the
dynamic type as it should

mark at codesourcery dot com [EMAIL PROTECTED] writes:

| --- Comment #22 from mark at codesourcery dot com  2006-10-04 05:39
---
| Subject: Re:  [4.0/4.1/4.2 Regression] placement new
|  does not change the dynamic type as it should
| 
| ian at airs dot com wrote:
|  --- Comment #21 from ian at airs dot com  2006-10-03 23:44 ---
|  In C a general allocation function should work with a char array.  A
specific
|  allocation function should use a union.  I don't think there are many
existing
|  exceptions to these guidelines.
| 
|  So I don't see a serious problem in C either.  Am I missing something/
| 
| I think there are two remaining issues:
| 
|int i;
|*(float*)(i) = 7.0;
| 
| IIUC, Mike's position is that this is valid -- and that, in fact, after 
| this point i can no longer be accessed as an int.  Do you agree?  

I don't see how that code is supported by the paragraphs quoted by Mike.
There was a recent discussion (at most two weeks ago) on the C++
standard reflector -core about similar topic.  I do agree with Mark
that the proper way to resolve this is to go to the C++ committee.
It would be incredible that C++ was less type-strict than C.

-- Gaby


-- 


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



[Bug c++/20599] variadic template support

2006-09-24 Thread gdr at integrable-solutions dot net


--- Comment #9 from gdr at integrable-solutions dot net  2006-09-25 03:38 
---
Subject: Re:  variadic template support

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| For the record, personally and for what is worth my personal opinion
| in the compiler area, I have nothing against adding to the compiler
| -std=c++0x 

We should have -std=c++2003 and -std=c++0x.  However, care must be
exercise about what is included in both options.

-- Gaby


-- 


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



[Bug c++/28687] [4.2 regression] dynamic_castvoid* disallowed too rigorously with -fno-rtti

2006-08-11 Thread gdr at integrable-solutions dot net


--- Comment #9 from gdr at integrable-solutions dot net  2006-08-11 11:01 
---
Subject: Re:  [4.2 regression] dynamic_castvoid* disallowed too rigorously
with -fno-rtti

benjamin at smedbergs dot us [EMAIL PROTECTED] writes:

| The documentation is incorrect.

The documentation is what we expect users to follow and what we
promise them.  As far as I can tell, there is no mismatch between the
documentation and the check we do.  So, your assertion is incorrect.

| RTTI is not required to find the most-derived
| class pointer, because the vtable contains this information natively and does
| not need to know anything about the type.

and where do you put and find the vtables?

| I'm making my point from years of working software, not some
| theoretical discussion. 

probabluy; but you're wrong.  Many, you should have a look at the
theory.

-- Gaby


-- 


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



[Bug c++/28687] [4.2 regression] dynamic_castvoid* disallowed too rigorously with -fno-rtti

2006-08-11 Thread gdr at integrable-solutions dot net


--- Comment #12 from gdr at integrable-solutions dot net  2006-08-11 12:33 
---
Subject: Re:  [4.2 regression] dynamic_castvoid* disallowed too rigorously
with -fno-rtti

benjamin at smedbergs dot us [EMAIL PROTECTED] writes:

| I'm not claiming that the behavior isn't conformant to the docs, I'm claiming
| that you regressed a construct that

No, we did not regress because the documentation was very explicit.

-- Gaby


-- 


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



[Bug c++/28687] [4.2 regression] dynamic_castvoid* disallowed too rigorously with -fno-rtti

2006-08-10 Thread gdr at integrable-solutions dot net


--- Comment #5 from gdr at integrable-solutions dot net  2006-08-11 01:20 
---
Subject: Re:   New: [4.2.0 regression] dynamic_castvoid* disallowed too
rigorously with -fno-rtti

benjamin at smedbergs dot us [EMAIL PROTECTED] writes:

| Code compiled with -fno-rtti containing a dynamic_castvoid* used to compile
| and work properly on types with a vtable (the base class can be determined
| entirely using the vtable without any RTTI information). 

RTTI is needed to have dynamic_cast works properly.  Period.

-- Gaby


-- 


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



[Bug c++/28687] [4.2 regression] dynamic_castvoid* disallowed too rigorously with -fno-rtti

2006-08-10 Thread gdr at integrable-solutions dot net


--- Comment #7 from gdr at integrable-solutions dot net  2006-08-11 04:48 
---
Subject: Re:  [4.2 regression] dynamic_castvoid* disallowed too rigorously
with -fno-rtti

benjamin at smedbergs dot us [EMAIL PROTECTED] writes:

| Gabriel, can you explain how it worked correctly in all the previous
| releases? 

I don't understand exactly what you mean by it worked correctly.
The documentation says:

  Disable generation of information about every class with virtual
  functions for use by the C++ runtime type identification features
  (`dynamic_cast' and `typeid'). If you don't use those parts of the
  language, you can save some space by using this flag. Note that
  exception handling uses the same information, but it will generate
  it as needed. 

In particular, you cannot use dynamic_cast and -fno-rtti at the same
time.  So far, it appears to me that your programs were contrary to
the documented recommendation.  

This PR should be closed as invalid.

| Is my summary of how it is done using only the vtable inaccurate?

As far as I understand the issue, yes.

-- Gaby


-- 


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



[Bug libstdc++/28587] vectorbool is extremely slow (900x slower than it should be)

2006-08-05 Thread gdr at integrable-solutions dot net


--- Comment #14 from gdr at integrable-solutions dot net  2006-08-05 23:26 
---
Subject: Re:  vectorbool is extremely slow (900x slower than it should be)

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| Fixed.

Thanks Paolo!

-- Gaby


-- 


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



[Bug libstdc++/28587] vectorbool is extremely slow (900x slower than it should be)

2006-08-03 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2006-08-03 21:13 
---
Subject: Re:  vectorbool is extremely slow (900x slower than it should be)

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| By the way, I think Andrew has a point, maybe not clearly stated, in that all
| the people actively working in the C++ Standard Commitee strongly dislike
| vectorbool for many reasons, and probably it will be deprecated in C++03
and
| a replacement added. That implies, in turn, that it's not so easy to find
| people willing to spend much time on (the various) implementations...

some committee members dislike vectorbool for various reasons; but
I don't see a chance it is going to change.  But that is no reason for
us to keep the implementation slower  :-)

-- Gaby


-- 


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



[Bug libstdc++/28587] vectorbool is extremely slow (900x slower than it should be)

2006-08-03 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2006-08-03 23:01 
---
Subject: Re:  vectorbool is extremely slow (900x slower than it should be)

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| (In reply to comment #6)
|  some committee members dislike vectorbool for various reasons; but
|  I don't see a chance it is going to change.
| 
| Really?

well, that is my opinion.  To me, the deprecation is pointless and
ineffective.  It would need a huge lobbying.

-- Gaby


-- 


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



[Bug libstdc++/28406] What should be value of sqrt(complexdouble(-1.0,-0.0))?

2006-08-03 Thread gdr at integrable-solutions dot net


--- Comment #3 from gdr at integrable-solutions dot net  2006-08-04 00:09 
---
Subject: Re:  What should be value of sqrt(complexdouble(-1.0,-0.0))?

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| The difference between 3.4.x and 4.x is due to the builtins, therefore the
| underlying libc, being called by the latter. As such, this is not a
| libstdc++-v3 proper issue anymore, because in any case, we definitely want to
| use the builtins, when available... Gaby, can you have a look?

yes; thanks!

-- Gaby


-- 


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



[Bug c++/28460] [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE

2006-07-23 Thread gdr at integrable-solutions dot net


--- Comment #5 from gdr at integrable-solutions dot net  2006-07-23 18:03 
---
Subject: Re:  [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE

mark at codesourcery dot com [EMAIL PROTECTED] writes:

| drow at gcc dot gnu dot org wrote:
|  --- Comment #3 from drow at gcc dot gnu dot org  2006-07-23 16:44
---
|  Subject: Re:  [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE
|  
|  On Sun, Jul 23, 2006 at 03:59:58PM -, mark at codesourcery dot com
wrote:
|  If we're setting TYPE_CONTEXT to global_namespace, I think that's a C++
|  front end bug.  Which type is getting set up like that?
|  
|  I was wrong; TYPE_CONTEXT looks OK.  How about for DECLs?
| 
| The same rule applies; DECL_CONTEXT should also be NULL_TREE for an
| entity in the global namespace.

I believe the situation has been that clear for DECLs for a long time
now.

-- Gaby
akcc


-- 


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



[Bug c++/28460] [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE

2006-07-23 Thread gdr at integrable-solutions dot net


--- Comment #9 from gdr at integrable-solutions dot net  2006-07-23 23:45 
---
Subject: Re:  [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE

drow at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Subject: Re:  [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE
| 
| On Sun, Jul 23, 2006 at 06:03:46PM -, gdr at integrable-solutions dot net
| wrote:
|  I believe the situation has been that clear for DECLs for a long time
|  now.
| 
| Hi Gaby,
| 
| Is there supposed to be a not in that sentence somewhere? 

Yes, obviously.  I meant has NOT been.
Sorry for the confusion.  
I should not hold a baby and answer bugzilla PRs stuff at the same time.

-- Gaby


-- 


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



[Bug c++/28460] [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE

2006-07-23 Thread gdr at integrable-solutions dot net


--- Comment #10 from gdr at integrable-solutions dot net  2006-07-23 23:47 
---
Subject: Re:  [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE

mark at codesourcery dot com [EMAIL PROTECTED] writes:

[...]

| (IMO, the ideal representation would have global_namespace for
| DECL_CONTEXT -- but that's not a change we can make without affecting
| the middle end, as you've noticed, so I think having
| {SET_,}CP_DECL_CONTEXT to insulate us would be a nice improvement.

I agree that is the correct representation.  Can we agree to have it
for GCC-4.3 or higher?

-- Gaby


-- 


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



[Bug c++/28460] [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE

2006-07-23 Thread gdr at integrable-solutions dot net


--- Comment #13 from gdr at integrable-solutions dot net  2006-07-24 01:34 
---
Subject: Re:  [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE

drow at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Subject: Re:  [4.0/4.1/4.2 Regression] g++ emits bogus namespace DIE
| 
| On Sun, Jul 23, 2006 at 11:47:32PM -, gdr at integrable-solutions dot net
| wrote:
|  I agree that is the correct representation.  Can we agree to have it
|  for GCC-4.3 or higher?
| 
| Judging from this one PR, and the tangled bits of the middle end that I
| could not untangle to sort out how to skip the global namespace, I
| think this will be a lot of work.

Thanks for the feedback; that is much appreciated.
So, I suspect we would have to live with this for quite some time.
Not a big deal though, compared to other issues.

-- Gaby


-- 


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



[Bug c++/28407] [4.2 regression] Issue with anonymous namespace

2006-07-17 Thread gdr at integrable-solutions dot net


--- Comment #2 from gdr at integrable-solutions dot net  2006-07-17 16:51 
---
Subject: Re:   New: [4.2 regression] Issue with anonymous namespace

jakub at redhat dot com [EMAIL PROTECTED] writes:

| templateconst char *str
| const char *baz ()
| {
|   return str;
| }
| 
| namespace { char foo[] = foo; };
| 
| const char *
| bar ()
| {
|   return bazfoo ();
| }
| 
| used to compile before the make anon-namespace non-public changes and still
| compiles when the anon namespace is changed for a named namespace and using
| namespace below it.

This is a bug in the compiler.  I have always warned people that the
unnamed namespace transformation to static should happen in the
*back-end*, not in the front-end using language rules, because the
language rules are slightly different in those cases.  But, at the
time people said I was considering theoretical problems.  The ability
to have the compiler do would be nice transformation should not take
over our ability for the compiler to have valid codes and generate
good executable.

-- Gaby


-- 


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



[Bug c++/28407] [4.2 regression] Issue with anonymous namespace

2006-07-17 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2006-07-17 20:19 
---
Subject: Re:  [4.2 regression] Issue with anonymous namespace

jason at redhat dot com [EMAIL PROTECTED] writes:

| --- Comment #3 from jason at redhat dot com  2006-07-17 19:53 ---
| Subject: Re:  [4.2 regression] Issue with anonymous namespace
| 
| gdr at integrable-solutions dot net wrote:
|  I have always warned people that the
|  unnamed namespace transformation to static should happen in the
|  *back-end*, not in the front-end using language rules, because the
|  language rules are slightly different in those cases.
| 
| I don't remember ever seeing you mention that before, but it does seem 
| like an interesting idea.

Hi Jason,

  This transformation has been discussed several times.  The last time
I made again that statement was with respect to a PR whose number I
can't remember right now.  However, google gave a link to this

   http://gcc.gnu.org/ml/gcc/2004-01/msg02351.html
   http://gcc.gnu.org/ml/gcc/2004-01/msg02358.html

the discussion is quite involved there, but I suspect it shows how
difficult it is get the caution through.

| Your comments in the PRs talk about not 
| changing the C++ linkage (which we obviously shouldn't), but not about 
| where to implement it.

Basically what I'm saying is this:  We should have two notions of
linkage

  (1) one at the language level, as mandated by the language definition;
  (2) and one at the symbol level, that the middle-end, back-end and
  linker understand.

Then we map the linkages in categrory (1) to those of category (2).
So that would enable us to use internal linkage (or hidden
visibilitty) at level (2) without affecting linkage at level 1.

At the moment it looks like the tree reprsentation somehow conflates
those two levels into a single one, leading to the current misbehaviour.

-- Gaby


-- 


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



[Bug libstdc++/28414] return type of valarray's sqrt function isn't valarray

2006-07-17 Thread gdr at integrable-solutions dot net


--- Comment #1 from gdr at integrable-solutions dot net  2006-07-17 23:57 
---
Subject: Re:   New: return type of valarray's sqrt function isn't valarray

djg at cray dot com [EMAIL PROTECTED] writes:

| The return type of valarray's sqrt function isn't valarray, as specified in 
| 26.3.3.3 [lib.valarray.transcend], and what it does return doesn't convert to
| valarray in some cases. This causes the slice1.cpp example from the Josuttis 
| book examples to get a compile error:
| 
| http://www.josuttis.com/libbook/num/slice1.cpp.html

This is not a bug.  The implementation is conformant to the C++
standard, which says, 16.3.1/3

  Any function returning a valarrayT is permitted to return an
  object of another type, provided all the const member functions of
  valarrayT are also applicable to this type. This return type shall
  not add more than two levels of template nesting over the most
  deeply nested argument type.


Please read further the book by Josuttis for a note about this.

-- Gaby


-- 


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



[Bug c/28152] Diagnostic about wrong use _Complex prints __complex__

2006-07-02 Thread gdr at integrable-solutions dot net


--- Comment #3 from gdr at integrable-solutions dot net  2006-07-02 16:03 
---
Subject: Re:  Diagnostic about wrong use _Complex prints __complex__

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Confirmed, we don't record in the preprocessor which keyword is
| used, _Complex is treated the same as __complex__.

Indeed. However, we can approximate a fix by testing whether we're
compiling under C99, GNU99, or just C90, or C++.

-- gaby


-- 


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



[Bug c/28152] Diagnostic about wrong use _Complex prints __complex__

2006-07-02 Thread gdr at integrable-solutions dot net


--- Comment #5 from gdr at integrable-solutions dot net  2006-07-02 16:37 
---
Subject: Re:  Diagnostic about wrong use _Complex prints __complex__

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| (In reply to comment #3)
|  Indeed. However, we can approximate a fix by testing whether we're
|  compiling under C99, GNU99, or just C90, or C++.
| 
| That would not work as _Complex is accepted in GNU90 more and with the C++
| front-end by default.

Lookup the meaning of approximation.

-- Gaby


-- 


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



[Bug libstdc++/28080] header dependencies

2006-06-23 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2006-06-23 16:35 
---
Subject: Re:  header dependencies

chris at bubblescope dot net [EMAIL PROTECTED] writes:

| I did implement a version of this myself, basically by writing a
| mapper around each container that did a few static_casts and mapped
| the functions to a void* version of the container. However, having a
| whole new bunch of inline functions causes problems for the
| compiler, without providing (as far as I could measure) 
| significant reductions in the size of the executable.

I'm not surprised.  We should be very cautious about increasing
abstraction penablty for the benefit of marginal reduction on header
dependencies.  Runtime performance of the library should not be
under-emphasized. 

-- Gaby


-- 


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



[Bug c++/25915] use ODR rules to make C++ objects not be TREE_PUBLIC

2006-06-21 Thread gdr at integrable-solutions dot net


--- Comment #9 from gdr at integrable-solutions dot net  2006-06-21 19:43 
---
Subject: Re:  use ODR rules to make C++ objects not be TREE_PUBLIC

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Yes this is all undefined but I rather have it be diagnose than
| having it be undefined behavior. 

interesting shift of perspective :-)

-- Gaby


-- 


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



[Bug libstdc++/27579] no warning for the non-standard integral overloads of math functions

2006-05-12 Thread gdr at integrable-solutions dot net


--- Comment #2 from gdr at integrable-solutions dot net  2006-05-12 21:47 
---
Subject: Re:   New: no warning for the non-standard integral overloads of math
functions

marc dot glisse at normalesup dot org [EMAIL PROTECTED] writes:

| As a solution to bug 3181, integral overloads of many math functions (like
| sqrt) were introduced. Would it be possible to add a warning when such
| overloads are instantiated? I don't know how to do that with g++ (if it is
not
| possible, then it would be a nice feature to add). It would help people write
| more portable code.

this is a non-issue.  PR should be closed.

-- Gaby


-- 


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



[Bug c++/27560] template function not recognized when invoked with enum defined in function

2006-05-11 Thread gdr at integrable-solutions dot net


--- Comment #3 from gdr at integrable-solutions dot net  2006-05-11 16:24 
---
Subject: Re:   New: template function not recognized when invoked with enum
defined in function

ian at airs dot com [EMAIL PROTECTED] writes:

| Compiling this file, with mainline, gcc 4.0, or 4.1
| 
| templatetypename t void f(t a) { }
| void g() { enum e { v }; f(v); }
| 
| gives this error message:
| 
| foo.cc: In function ‘void g()’:
| foo.cc:2: error: no matching function for call to ‘f(g()::e)’
| 
| If the enum definition is moved out of the function, this works.  With gcc
3.2,
| this works.  I didn't try 3.4.

There is a core issue for this.  We discussed it again at the last
meeting in Berlin.  There are proposals to make it just work, but
that is still in the open state.

-- Gaby


-- 


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



[Bug c++/27560] template function not recognized when invoked with enum defined in function

2006-05-11 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2006-05-11 16:47 
---
Subject: Re:  template function not recognized when invoked with enum defined
in function

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| It was not hastly closed, the current standard says this is invalid.

and the current standard is known to be defective in that aspect,
which is why we had the core issue in the first place. 

-- Gaby


-- 


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



[Bug c++/27560] template function not recognized when invoked with enum defined in function

2006-05-11 Thread gdr at integrable-solutions dot net


--- Comment #9 from gdr at integrable-solutions dot net  2006-05-11 23:20 
---
Subject: Re:  template function not recognized when invoked with enum defined
in function

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| (In reply to comment #7)
|  This may be related to 20589, but I don't think it is the same issue.
| It is the same issue because there is only one Defect report for the C++
| standard.

They are not the same thing. 

However, somehow, both issues have been conglomerated in the same
_topic_ 

-- Gaby


-- 


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2006-05-09 Thread gdr at integrable-solutions dot net


--- Comment #57 from gdr at integrable-solutions dot net  2006-05-09 15:15 
---
Subject: Re:  __cplusplus defined to 1, should be 199711L

marc dot glisse at normalesup dot org [EMAIL PROTECTED] writes:

| (In reply to comment #30)
|  Defines __cplusplus to 199711L and overrides it in c++config.h for solaris
8
| 
| Out of curiosity, why not deal with __cplusplus the same way as __STDC__ (0
for
| standard headers and 1 elsewhere IIRC) instead, or even defining it to 1
| directly for this platform? If I include stdlib.h (not cstdlib), I won't
| include c++config.h first, and it should cause trouble with this approach.

other standard headers might directly or indrectly include cstdlib,
so any macro game should work properly.  I see c++config.h as a
built-in header that should be always there anyway we are processing
a C++ program.

-- Gaby


-- 


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



[Bug libstdc++/26974] hidden declarations klobber STL

2006-05-01 Thread gdr at integrable-solutions dot net


--- Comment #31 from gdr at integrable-solutions dot net  2006-05-01 18:55 
---
Subject: Re:  hidden declarations klobber STL

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| Well, two comments: first, I cannot reproduce with current mainline. Second,
| frankly, if the implication of the issue is that in the entire implementation
| of algorithm we cannot use operator, only to allow the user to write
| unrestricted operator, templates in the face of the ADL trickeries, then,
well,
| I don't think we are going to buy that. Before closing this I'm only curious
to
| know why mainline is fine, maybe, simply, ADL was too zelant here? Any
language
| lawyer kicking in?

Why is operator, essential to libstdc++?

-- Gaby


-- 


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



[Bug libstdc++/26974] hidden declarations klobber STL

2006-05-01 Thread gdr at integrable-solutions dot net


--- Comment #32 from gdr at integrable-solutions dot net  2006-05-01 18:59 
---
Subject: Re:  hidden declarations klobber STL

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| --- Comment #14 from pcarlini at suse dot de  2006-04-20 09:37 ---
| (In reply to comment #12)
|  I don't think that the problem is in the STL. The STL can be as tricky as
it
|  wants, including use of operator,(). It should not be possible for the
actual
|  operator,()s I declared to hijack the STL the way that happened, because 1)
my
|  declarations were out of scope for the STL code and 2) their signatures did
not
|  match the STL call site. This suggests a compiler bug to me, not an STL
|  mis-design.
| 
| Actually, I'm not at all sure, given: 1- our vector::iterator not being a
| built-in type; 2- ADL rules. 3- The nature of fill_n (templated on *both*
_Size
| and _OutputIterator). Again, I'm not a language lawyer, but I think that,
| strictly speaking, the compiler may legally find and match your operator,

Yes.

| I can certainly patch fill_n to avoid the operator, no big deal, my question
is
| more general, whether, given our class-type vector::iterator, given the
| unrestrictedness of many algorithm templates, given current ADL rules,
| whether it makes sense for us to go that route trying piecewise to improve
| now the library, in the current C++03 framework.

I believe it makes sense to do so the extent we can -- we (e.g. *you*) did
patch the library so that qualified call where OK, e.g. std::copy, where
we did so only for implementation details.  The use of operator, in
this case is no different.

-- Gaby


-- 


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



[Bug libstdc++/26974] hidden declarations klobber STL

2006-05-01 Thread gdr at integrable-solutions dot net


--- Comment #33 from gdr at integrable-solutions dot net  2006-05-01 19:02 
---
Subject: Re:  hidden declarations klobber STL

bangerth at dealii dot org [EMAIL PROTECTED] writes:

| I mean, it's a miracle your code actually does what you expect.

:-))

-- Gaby


-- 


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



[Bug c++/27235] goto crossing P.O.D. initialization

2006-05-01 Thread gdr at integrable-solutions dot net


--- Comment #12 from gdr at integrable-solutions dot net  2006-05-01 20:45 
---
Subject: Re:  goto crossing P.O.D. initialization

falk at debian dot org [EMAIL PROTECTED] writes:

| I think this is a valid request. While random language extensions aren't
| useful,
| compatibility with C99 is. Maybe somebody else can comment on this...

You have to be more precise about what you mean by C99 compatibility.

My take on this goto stuff, if it is not valid C++, it is valid C++.  Period.

-- Gaby


-- 


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



[Bug c++/27235] goto crossing P.O.D. initialization

2006-05-01 Thread gdr at integrable-solutions dot net


--- Comment #13 from gdr at integrable-solutions dot net  2006-05-01 20:47 
---
Subject: Re:  goto crossing P.O.D. initialization

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| PR 27252 (aka PR 9278) is another example where C and C++ diff and in fact
was
| just fixed for 4.2.0 for a bug report.  These are just some examples of where
C
| and C++ differ.

I fully agree.
People have to be extra careful when they talk about compatibility
with C99 where the C committee has carefully chosen to depart from C++.

-- Gaby


-- 


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



[Bug c++/27235] goto crossing P.O.D. initialization

2006-05-01 Thread gdr at integrable-solutions dot net


--- Comment #14 from gdr at integrable-solutions dot net  2006-05-01 20:48 
---
Subject: Re:  goto crossing P.O.D. initialization

acahalan at gmail dot com [EMAIL PROTECTED] writes:

| I only ask that C compatibility be provided for code that would otherwise
fail
| to compile as C++. This makes code reuse much easier.

Given prior existence in C++, I think logic would require that you ask
gcc to be compatibile with g++.

-- Gaby


-- 


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



[Bug c++/27235] goto crossing P.O.D. initialization

2006-05-01 Thread gdr at integrable-solutions dot net


--- Comment #16 from gdr at integrable-solutions dot net  2006-05-01 23:30 
---
Subject: Re:  goto crossing P.O.D. initialization

falk at debian dot org [EMAIL PROTECTED] writes:

| --- Comment #15 from falk at debian dot org  2006-05-01 20:55 ---
| (In reply to comment #12)
|  Subject: Re:  goto crossing P.O.D. initialization
|  
|  falk at debian dot org [EMAIL PROTECTED] writes:
|  
|  | I think this is a valid request. While random language extensions aren't
|  | useful,
|  | compatibility with C99 is. Maybe somebody else can comment on this...
|  
|  You have to be more precise about what you mean by C99 compatibility.
| 
| I have trouble seeing what might be unclear about this term.

I suspect part of the problem is that everybody believes that his/her uses
of the term are so clear that they he/she has trouble seeing anybody
disagree with him/her.

| I mean that code
| that is valid C99 is accepted in C++ unless there is a good reason not to.

And why not the other way around?  I mean, codes that is valid C++ is
accepted in C99 unless there is good reason not to.  As far as I can
see, that also is compatibility.

| just like most of C89 is accepted in C++ unless there is a good reason not
to.

I suspect this is might be one the places things needs to be explained.  

If 

   * only a subset of C89 is valid  C++ and has same meaning as in C++,
   * C99 has carefully departed from both C89 and C++

why is it that code that is valid C99 is accepted C++ unless there is
a good reason not to?  

-- Gaby


-- 


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



[Bug libstdc++/27340] valarray uses __cos which may conflict with libm functions

2006-05-01 Thread gdr at integrable-solutions dot net


--- Comment #7 from gdr at integrable-solutions dot net  2006-05-01 23:39 
---
Subject: Re:  valarray uses __cos which may conflict with libm functions

marc dot glisse at normalesup dot org [EMAIL PROTECTED] writes:

| (In reply to comment #4)
|  Should all those private classes and functions be declared in some
|  specific namespace std::glibcxx_private to have a single point of failure? 
| 
| Oups, I just noticed that was one of the roles of __gnu_cxx (although I don't
| understand why this namespace is not a subnamespace of std:: as tr1 (or at
| least contains a using namespace std;),

Why shall it?


Before people suggest more tricky playing with libstdc++ name spaces,
I would recommand people understand that namespaces are not silver bullet
against machivelic playing with names. 


| which would at the same time fix things
| like getenv not being prefixed by std:: in ext/mt_allocator.h).

That is a separate problem that does not require namespace nesting. 

Nesting namespaces does not come for free.  You really need to
understand its consequences (name lookp, overload resolution, etc.)
before proposing it.   

-- Gaby


-- 


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



[Bug libstdc++/6257] C-library symbols enter global namespace

2006-04-30 Thread gdr at integrable-solutions dot net


--- Comment #24 from gdr at integrable-solutions dot net  2006-04-30 23:05 
---
Subject: Re:  C-library symbols enter global namespace

marc dot glisse at normalesup dot org [EMAIL PROTECTED] writes:

| (In reply to comment #20)
|  the
|  very same source code would not be be portable across those targets. I
don't
|  think we would like that. Besides, more generally, I'm not at all sure that
|  all the users would actually *like* the new behavior.
| 
| I meant proposing it as a choice, with a flag like -fclean-global-namespace

That is a non-starter.

PR better suspended.

-- Gaby


-- 


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



[Bug c/27055] Structures are copied byte by byte into function arguments

2006-04-06 Thread gdr at integrable-solutions dot net


--- Comment #1 from gdr at integrable-solutions dot net  2006-04-06 12:03 
---
Subject: Re:   New: Structures are copied byte by byte into function arguments

guillaume dot melquiond at ens-lyon dot fr [EMAIL PROTECTED] writes:

[...]

| With 3.4.6, the copy is done byte-by-byte without string
| opcodes. With 4.0.3 and 4.1.0, it is done byte-by-byte and
| out-of-line: there are two jumps for each copied byte! So argument
| copy got broken for x86 during GCC 3.4 cycle and it did not get any
| better with GCC 4. 

That is insane, if I may.

-- Gaby


-- 


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



[Bug c++/27052] When using excessive -ftemplate-depth g++ overflows the stack

2006-04-06 Thread gdr at integrable-solutions dot net


--- Comment #5 from gdr at integrable-solutions dot net  2006-04-06 12:23 
---
Subject: Re:  When using excessive -ftemplate-depth g++ overflows the stack

gcc at magfr dot user dot lysator dot liu dot se [EMAIL PROTECTED]
writes:

| The standard says the limit have to be more than 17,

No, the standard did not say that.  the standard just said there is an
implementation defined limit.  An implementation may define that limit
to be infinite.

-- Gaby


-- 


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



[Bug c++/27052] When using excessive -ftemplate-depth g++ overflows the stack

2006-04-06 Thread gdr at integrable-solutions dot net


--- Comment #7 from gdr at integrable-solutions dot net  2006-04-06 13:09 
---
Subject: Re:  When using excessive -ftemplate-depth g++ overflows the stack

gcc at magfr dot user dot lysator dot liu dot se [EMAIL PROTECTED]
writes:
| ( As an aside that suggests that you could have a strictly conforming
| implementation where the max limit is 0, but that discussion is more fitting
on
| comp.std.c++)

That is technically correct; but it is beside the point.

-- Gaby


-- 


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



[Bug libstdc++/25608] g++ miscompiles gcjx

2006-03-17 Thread gdr at integrable-solutions dot net


--- Comment #19 from gdr at integrable-solutions dot net  2006-03-17 23:37 
---
Subject: Re:  g++ miscompiles gcjx

bkoz at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| is this still an active issue, or was it indicative of some temporary or
| transient thing in the gcc sources?

Now, I get a segmentation fault -- instead of dead lock.
gcjx is compiled with mainline GCC/g++.
I was trying to compile classptah.

Adding generated files in builddir '..'.
/home/gdr/bin/gcjx -encoding UTF-8 -classpath .: -d . @classes
make[1]: *** [compile-classes] Segmentation fault
make[1]: Leaving directory `/home/gdr/build/classpath/lib'


-- Gaby


-- 


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



[Bug target/26436] [3.4 only] Use of 'mov' may violate WAW dependency 'GR%, % in 1 - 127' (impliedf), specific resource number is 14

2006-02-28 Thread gdr at integrable-solutions dot net


--- Comment #13 from gdr at integrable-solutions dot net  2006-02-28 09:02 
---
Subject: Re:  [3.4 only] Use of 'mov' may violate WAW dependency 'GR%, % in 1 -
127' (impliedf), specific resource number is 14

wilson at gcc dot gnu dot org [EMAIL PROTECTED] writes:

[...]

| As a workaround, we could modify the compiler to try to detect nested DV
cases,
| and emit extra unnecessary .pred.rel.mutex directives for them.  This would
| work around the assembler bug.

Jim, you seem to understand well the issue.  Would you ve willing to
contribute a patch?  GCC-3.4.6 release is soon; otherwise, I will just
close this PR as won't fix.

-- Gaby


-- 


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



[Bug c++/17332] [3.4 Regression] Missed inline opportunity

2006-02-28 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2006-02-28 10:13 
---
Subject: Re:  [3.4 Regression] Missed inline opportunity

yuri at tsoft dot com [EMAIL PROTECTED] writes:

| So there should be no performance-related bugs reported any more
| since you only care about correctness?

As ever, performance releated bugs are welcome.  

However, this is a bug that will not get fixed on the 3.4.x branch.

-- Gaby


-- 


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



[Bug c++/26395] Wrong attempts to create a copy of an anonymous object

2006-02-21 Thread gdr at integrable-solutions dot net


--- Comment #2 from gdr at integrable-solutions dot net  2006-02-21 17:19 
---
Subject: Re:  Wrong attempts to create a copy of an anonymous object

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| --- Comment #1 from pinskia at gcc dot gnu dot org  2006-02-21 15:59
---
|  Please read:
| http://gcc.gnu.org/gcc-3.4/changes.html
| 
| 
| GCC before 3.4 was accepting invalid code.
| 
| 
| -- 
| 
| pinskia at gcc dot gnu dot org changed:
| 
|What|Removed |Added
| 
|  Status|UNCONFIRMED |RESOLVED
|  Resolution||INVALID

In fact, there should be an open PR for this -- which is a request
for enhancement.  The code is ill-formed under C++98 and C++03; it is
well formed in C++0x (the changes are in the Working Paper.)

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++ not working as expected, documented

2006-02-16 Thread gdr at integrable-solutions dot net


--- Comment #26 from gdr at integrable-solutions dot net  2006-02-16 14:52 
---
Subject: Re:  --enable-languages=c,c++ not working as expected, documented

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| GDR you commented on this before:
| http://gcc.gnu.org/ml/java/2000-12/msg00174.html

good.  So you understand that building things that are not asked for
was considered at best annoying back then.

| Back when the patch was created did you forgot about removing
| directories now? 

so does it make it less issue today?  Please stop being silly.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++ not working as expected, documented

2006-02-16 Thread gdr at integrable-solutions dot net


--- Comment #25 from gdr at integrable-solutions dot net  2006-02-16 14:49 
---
Subject: Re:  --enable-languages=c,c++ not working as expected, documented

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| How would you guys design this?

That was explained in the several messages we sent.

| Have configure do all the work?

No.  We would like configure not to be overzealous.

| What happens when someone wants to add a new language, do you have to update
| configure?

No, on the contrary.

[...]

|  Status|NEW |RESOLVED
|  Resolution||INVALID

You seem to be toally confused and unable to understand the issue.
For the nth time, please stop closing this issue.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++ not working as expected, documented when removing gcc/ada and libada but not gnattools

2006-02-16 Thread gdr at integrable-solutions dot net


--- Comment #31 from gdr at integrable-solutions dot net  2006-02-16 15:53 
---
Subject: Re:  --enable-languages=c,c++ not working as expected, documented when
removing gcc/ada and libada but not gnattools

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| (In reply to comment #29)
|   Again this bug is about removing two directories and then trying to build
|  
|  You're totally confused.  The bug really is about components being built
|  when they are not asked for.  removing two directories is just a way
|  to trigger the behaviour.
| 
| Actually the components were asked for since gnattools was not
| associated with any language after the removal of gcc/ada.

That is wrong.  The component should be asked for because that
decision is derived from the --enable-languages setting, not because
gcc/Ada is missing.  That is what the defect is about.  See Benjamin's
comment #15.

|  Since you're unable to appreciate that point, you have earn the right NOT
|  to touch this PR.  Please concentrate your helping effort on other issues.
|  You're NOT being helpful here.
| 
| I have been helpful by saying why it is not working the way you want it to be
| working.  This is how the building works.

yes, you have been saying how it works, not *why* it should work that
way.  The PR acknowledges how it is currently working; the PR is
saying that that current behaivour is not very helpful and should be
improved.  Please take a deep breath and explore that path.  Is it
really helpful or useful it wokrs the way it currently is?  Can it be
improved?   While exploring that path, don't consider the current
behaviuour God given.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++ not working as expected, documented

2006-02-15 Thread gdr at integrable-solutions dot net


--- Comment #18 from gdr at integrable-solutions dot net  2006-02-16 01:59 
---
Subject: Re:  --enable-languages=c,c++,fortran needs ada

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| 
|  Status|UNCONFIRMED |RESOLVED
|  Resolution||INVALID

Andrew --
  Please stop closing issues until you fully appreciate what people are
getting at.  The current behaviour does NOT make much sense.

  BTW, you don't need a poll on IRC about me and this issue, as I've
heard.  Thanks. 

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++ not working as expected, documented

2006-02-15 Thread gdr at integrable-solutions dot net


--- Comment #19 from gdr at integrable-solutions dot net  2006-02-16 02:00 
---
Subject: Re:  --enable-languages=c,c++,fortran needs ada

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| The wiki mentions what needs to be removed also:
| http://gcc.gnu.org/wiki/SvnSetup

The Wiki is nice and helpful but it is not GCC official
documentation.  If there is any documented behaviour it should be part
of GCC.  If the documented behaviour does not make any sense, it
should be changed.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++ not working as expected, documented

2006-02-15 Thread gdr at integrable-solutions dot net


--- Comment #20 from gdr at integrable-solutions dot net  2006-02-16 02:01 
---
Subject: Re:  --enable-languages=c,c++,fortran needs ada

bkoz at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| I guess I'm left unimpressed at the current --enable-languages=c,c++ behavior
| though. This flag should not be a hint! 

Fully agreed.  This issue should be reopened and the current behaviour
be improved.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++ not working as expected, documented

2006-02-15 Thread gdr at integrable-solutions dot net


--- Comment #21 from gdr at integrable-solutions dot net  2006-02-16 02:05 
---
Subject: Re:  --enable-languages=c,c++ not working as expected, documented

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| I think there is a misunderstanding on how our build mechanism works and has
| since at least 2000,

since when it started working like that does not make it less than a
bug.  I had the same understanding as Benjamin when I saw the PR; then,
walking through the steps just convinces me that the current behaviour
is useless.  It does not matter since when it was like that.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++,fortran needs ada

2006-02-14 Thread gdr at integrable-solutions dot net


--- Comment #4 from gdr at integrable-solutions dot net  2006-02-14 18:15 
---
Subject: Re:  --enable-languages=c,c++,fortran needs ada

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| Yes you forgot to remove the library and tools directory for Ada.

So what?  He did not ask for building Ada in --enable-languages.
Clearly this is a bug.  If I don't want to build C++, I don't have to
remove the language and front-end directory -- it suffices I don't ask
for C++ in --enable-languages.  Ada should not be any different.

| This bug report is, doctor it hurts when I do this.  Doctor: Don't do it
| then.

That is pure nonsense.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++,fortran needs ada

2006-02-14 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2006-02-14 19:14 
---
Subject: Re:  --enable-languages=c,c++,fortran needs ada

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| (In reply to comment #4)
|  Subject: Re:  --enable-languages=c,c++,fortran needs ada
|  
|  pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:
|  
|  | Yes you forgot to remove the library and tools directory for Ada.
|  
|  So what?  He did not ask for building Ada in --enable-languages.
|  Clearly this is a bug.  If I don't want to build C++, I don't have to
|  remove the language and front-end directory -- it suffices I don't ask
|  for C++ in --enable-languages.  Ada should not be any different.
| 
| Lets look at what happens here.  The ada subdirectory in gcc was
| removed so the toplevel configure did not know those
| libraries/programs are only to build when ada is enabled.

But the point is that the build machinery should not attempt to build
those libraries/programs when ada is not part of --enable-languages,
not just when the ada directory is present or absent.  The decision
should be based on --enable-languages, nto just absence or presence of
directory. 

| The same goes for when removing the c++ subdirectory in gcc and libstdc++ is
| still being built.

No.  If not language (e.g. c++) requiring libstdc++ is specified, its
build is not attempted, where the subdirectory is present or not.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++,fortran needs ada

2006-02-14 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2006-02-14 20:37 
---
Subject: Re:  --enable-languages=c,c++,fortran needs ada

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| (In reply to comment #6)
|  But the point is that the build machinery should not attempt to build
|  those libraries/programs when ada is not part of --enable-languages,
|  not just when the ada directory is present or absent.  The decision
|  should be based on --enable-languages, nto just absence or presence of
|  directory. 
| But the language subdirectories has this information in config-lang.in.
| For an example ada/config-lang.in:
| 
| target_libs=target-libada
| lang_dirs=gnattools

Yes, I understand that.  What I'm saying is that that file *enables*
program/libraries to build for ada target; so by default the build
machinery should not try to build anything that does not come from
implied config-lang.in.  In this case, since ada was not enabled, the
ada-related tools builds should not be attempted -- whether the
relevant config-lang.in is present or absent.

-- Gaby


-- 


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



[Bug bootstrap/26259] --enable-languages=c,c++,fortran needs ada

2006-02-14 Thread gdr at integrable-solutions dot net


--- Comment #11 from gdr at integrable-solutions dot net  2006-02-14 21:11 
---
Subject: Re:  --enable-languages=c,c++,fortran needs ada

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| --- Comment #10 from pinskia at gcc dot gnu dot org  2006-02-14 20:50
---
| (In reply to comment #9)
|  This is the opposite from what you think it does.  I bet there is a
documention
|  failure here but I have not checked yet.
| 
| http://gcc.gnu.org/onlinedocs/gccint/Front-End-Config.html#Front-End-Config
| lang_dirs
| If defined, this variable lists (space-separated) top level directories
| (parallel to gcc), apart from the runtime libraries, that should not be
| configured if this front end is not built. 
| 
| 
| So it looks like it is documented a little but maybe not as we should have
it.

OK; that is odd (in terms of usability) but I guess a documentation
clarification is most certainly welcomed.

-- Gaby


-- 


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



[Bug c++/26167] -Wconversion fails to detect signedness conversion from int to unsigned int in fuction call

2006-02-08 Thread gdr at integrable-solutions dot net


--- Comment #3 from gdr at integrable-solutions dot net  2006-02-08 15:32 
---
Subject: Re:  -Wconversion fails to detect signedness conversion from int to
unsigned int in fuction call

mueller at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| ugh, that warning isn't even in -Wextra. 

I'll be happy to review patch to make the warning work in the C++
front-end.  I'll do it myself if nobody feels like tackling it :-)

-- Gaby


-- 


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



[Bug c++/26148] g++ bug, possibly introduced around gcc 3.4.0

2006-02-08 Thread gdr at integrable-solutions dot net


--- Comment #4 from gdr at integrable-solutions dot net  2006-02-08 22:30 
---
Subject: Re:  g++ bug, possibly introduced around gcc 3.4.0

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| try comp.lang.c++ first and then go from there.

  comp.std.c++ is the place to talk about ISO C++ definition -- that
is where most ISO C++ standard people look for changes in C++.

-- Gaby


-- 


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



[Bug c++/26099] support for type traits is not available

2006-02-04 Thread gdr at integrable-solutions dot net


--- Comment #6 from gdr at integrable-solutions dot net  2006-02-05 03:56 
---
Subject: Re:  support for type traits is not available

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| The interest should really go to the committe than one
| implementation.  Now GCC can add this as an extensions and that can
| help the discussion/decision to add it to the standard.

I have no doubt many (all?) of of the tr1 traits will be part of C++0x.

I think the PR is a valid request for enhancement, with priority
higher than most requests for enhancements I've seen.

-- Gaby


-- 


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



[Bug c++/3187] gcc lays down two copies of constructors

2006-02-04 Thread gdr at integrable-solutions dot net


--- Comment #24 from gdr at integrable-solutions dot net  2006-02-05 03:58 
---
Subject: Re:  gcc lays down two copies of constructors

ian at airs dot com [EMAIL PROTECTED] writes:

| I don't feel that this PR should be suspended, at least not until we
| have fixed the common case.

I think I agree with Ian.

-- Gaby


-- 


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



[Bug c++/3187] gcc lays down two copies of constructors

2006-02-04 Thread gdr at integrable-solutions dot net


--- Comment #25 from gdr at integrable-solutions dot net  2006-02-05 04:00 
---
Subject: Re:  gcc lays down two copies of constructors

pinskia at physics dot uc dot edu [EMAIL PROTECTED] writes:

| But that does not work for some assemblers/file formats (like Darwin) as
| Darwin's as finds subsections via labels.

then we would just have not to implement what Ian proposes for Darwin.

-- Gaby


-- 


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



[Bug middle-end/26061] error and warning count

2006-02-02 Thread gdr at integrable-solutions dot net


--- Comment #4 from gdr at integrable-solutions dot net  2006-02-02 15:12 
---
Subject: Re:  error and warning count

pinskia at physics dot uc dot edu [EMAIL PROTECTED] writes:

|  IMO this is a useful feature because the number of lines of error output
that
|  GCC produces for a file is not (always) a correct measure for the amount of
|  errors and warnings produced for that file. This is because GCC produces
not
|  only the error messages themselves, but also extra helpful output. And it
is
|  also nice to see in one fast look how many errors I still have to fix in my
|  code.
| 
| It is not really a good measure as sometimes fixing one error will fix the
| rest.

true, but it is still a helpful information.  That reminds of when I
first iused sun's CC -- it really was a pleasant experience.

-- Gaby


-- 


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



[Bug libstdc++/26020] std::advance() isn't stable for floating point numbers

2006-01-30 Thread gdr at integrable-solutions dot net


--- Comment #13 from gdr at integrable-solutions dot net  2006-01-30 12:50 
---
Subject: Re:  std::advance() isn't stable for floating point numbers

Woebbeking at web dot de [EMAIL PROTECTED] writes:

| Subject: Re:  std::advance() isn't stable for floating point numbers
| 
| On Monday 30 January 2006 08:54, gdr at integrable-solutions dot net 
| wrote:
|  --- Comment #11 from gdr at integrable-solutions dot net 
| 
|  | FYI, I suggested tests for  0 and  0 as MSVC 7.1 does it that
|  | way.
|  |
|  | If you convert Distance to difference_type the question is what
|  | happens if Distance is i.e. 0.2. Do you advance by 0 or 1 position?
| 
|  does not that follow from the conversion rule?
| 
| Of course. I meant what should it do. Do you want it to advance by 0 or 
| 1 position? Do we just use a simple cast or do we need to do some 
| rounding? AFAIK MSVC advance by 1 in this case.

Given that Distance is supposed to behave like en integral type in
the first place, I would simply use:

  (1) implicit conversion to convert it to difference_type;
  (2) advance the number of time computed from (1).

-- Gaby


-- 


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



[Bug c++/26037] no match for 'operator'

2006-01-30 Thread gdr at integrable-solutions dot net


--- Comment #4 from gdr at integrable-solutions dot net  2006-01-30 18:14 
---
Subject: Re:  no match for 'operator'

pinskia at gcc dot gnu dot org [EMAIL PROTECTED] writes:

| I should note this is called argument dependent lookup (or ADL, there is
| another name for it after a person but he no longer wants to be
| associated with this).

yup.

The printing is a bit ugly though.  Should be fixed (not the PR, the
printing). 

-- Gaby


-- 


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



[Bug libstdc++/26020] std::advance() isn't stable for floating point numbers

2006-01-29 Thread gdr at integrable-solutions dot net


--- Comment #4 from gdr at integrable-solutions dot net  2006-01-30 00:35 
---
Subject: Re:  std::advance() isn't stable for floating point numbers

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| AFAICS, the standard is silent about this issue. I think the suggested change
| is correct.

I believe Martin Sebor filled a related PR, whereby we should have
converted n to *some* integral type before proceeding...

-- Gaby


-- 


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



[Bug libstdc++/26020] std::advance() isn't stable for floating point numbers

2006-01-29 Thread gdr at integrable-solutions dot net


--- Comment #7 from gdr at integrable-solutions dot net  2006-01-30 01:05 
---
Subject: Re:  std::advance() isn't stable for floating point numbers

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| --- Comment #5 from pcarlini at suse dot de  2006-01-30 00:45 ---
| (In reply to comment #4)
|  | AFAICS, the standard is silent about this issue. I think the suggested
|  | change is correct.
|  
|  I believe Martin Sebor filled a related PR, whereby we should have
|  converted n to *some* integral type before proceeding...
| 
| I was also under that impression. That issue, however, was about Size in
algos,

sorry; memory failing.

| which, at least, is required to be convertible to an integral type. I don't
| think we even have such *minimal* requirement here... What do you suggest?

reading the standard specification let me under the impression that
Distance is supposed to related to difference_type.  For example
the distance between the p before and after calling distance(p, n) is
supposed to be n.  So I would suggest conversion to the
difference_type of the iterator as a momentary resolution.

| Should the LWG discuss such kind of requirements for Distance too?

Definitely.

| In the meanwhile suspend? I have no strong opinions...

I'm not sure the resolution would introduce an ABI breakage, so I
would say let's do both; but I'm open to other alternatives.

-- Gaby


-- 


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



[Bug libstdc++/26020] std::advance() isn't stable for floating point numbers

2006-01-29 Thread gdr at integrable-solutions dot net


--- Comment #8 from gdr at integrable-solutions dot net  2006-01-30 01:07 
---
Subject: Re:  std::advance() isn't stable for floating point numbers

pcarlini at suse dot de [EMAIL PROTECTED] writes:

| Hi again. On second tought, I don't think we have an issue here. Maybe of QoI
| only, at most. The reason is that, according to 24.1/9, Distance is a
| difference type in the following sections. A bit vague, but that seem to
| imply to also the template argument Distance in 24.3.4 is a difference
type...

That matches my interpretation --- hence Distance must behave like
an integral type -- but still, the question is exactly what kind of
relation does it have with say
std::iteratorFowardIterator::difference_type. 

-- Gaby


-- 


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



  1   2   3   4   >