[Bug c/20000] missing warning for noreturn function returning non-void

2005-02-15 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-02-16 06:48 
---
... because the attribute used to get translated to a volatile qualifier
on the function type, iirc.

-- 


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


[Bug middle-end/18785] [4.0 Regression] isdigit builtin function fails with EBCDIC character sets

2005-02-20 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-02-20 17:07 
---
Patch checked in.  Related bugs remain, which should receive separate PRs.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug preprocessor/9449] UCNs not recognized in identifiers (c++/c99)

2005-02-21 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-02-21 20:14 
---
Subject: Re:  UCNs not recognized in identifiers
 (c++/c99)

"geoffk at geoffk dot org" <[EMAIL PROTECTED]> writes:

> Although I agree that these are all (except the below) nice things to 
> have, I don't think I agree that they are all preconditions to having 
> any part of an implementation.  For instance, an implementation that 
> said sorry() when using # on an identifier from a UCN would still be 
> more useful than the complete lack of implementation we have now.

In my book, a complete lack of implementation of this particular
feature is better than an incomplete one.  This is because I see the
vast majority of the work required to do a complete implementation as
being due-diligence tasks needed to ensure that the feature cannot
crash the compiler, cause wrong code generation, or introduce
compatibility problems, and as long as someone is going to do all that
work, why shouldn't they do the rest of the job as long as they're in
there?

> The second half would a pp-number, instead.  It is always true that
> splitting an identifier between characters yields two valid
> preprocessing tokens.

Joseph has mostly explained this, but I should add that what you get
if you split, say, "a\u0660b", between the "a" and the backslash is
two identifiers, the second of which's "initial character is a
universal character name designating a digit", which violates a
shall-clause in a semantics paragraph, and therefore provokes
undefined behavior. (C99 6.4.2.1p3.)

Standing policy is that all cases which provoke undefined behavior
inside the preprocessor, except already-documented GNU extensions,
shall produce hard errors.  I am tempted to make a partial exception
in this case in the interest of better compatibility with C++.  Almost
all of the UCNs in the "digits" block of C99 annex D are completely
excluded from C++98 annex E - so "a\u0660b" for instance is an invalid
identifier, and we never get as far as wondering what happens if we
split it before the backslash.  However, the range 0e50-0e59 is in the
"Thai" range of C++98/E, but *both* the "Thai" and the "Digits" ranges
of C99/D.  It would be sensible, IMO, to resolve the error in C99/D by
removing 0e50-0e59 from the "Digits" range, thus permitting those
characters to begin identifiers in both C and C++.  [Note that
currently ucnid.tab takes the opposite position.]

zw


-- 


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


[Bug preprocessor/9449] UCNs not recognized in identifiers (c++/c99)

2005-02-21 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-02-21 20:23 
---
Subject: Re:  UCNs not recognized in identifiers
 (c++/c99)

"geoffk at geoffk dot org" <[EMAIL PROTECTED]> writes:

>>> The second half would a pp-number, instead.  It is always true that
>>> splitting an identifier between characters yields two valid
>>> preprocessing tokens.
>>
>> It would not be a pp-number, as a UCN for a digit is still an
>> identifier-nondigit rather than a digit in terms of the syntax and
>> pp-numbers can't start with identifiers-nondigits.
>
> That's a defect in the standard, the tail of an identifier is supposed 
> to be either an identifier or a pp-number, that's why pp-number exists.

Arguably yes.  *shrug* You perhaps begin to see why I did not want
this feature implemented?  Or at least why I want it done with great
caution and consideration of all these corner cases?

Does your opinion of this particular corner case change in view of C++
not permitting most of the "digit" UCNs in identifiers at all?

zw


-- 


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


[Bug preprocessor/9449] UCNs not recognized in identifiers (c++/c99)

2005-02-21 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-02-21 20:54 
---
Subject: Re:  UCNs not recognized in identifiers
 (c++/c99)

"geoffk at geoffk dot org" <[EMAIL PROTECTED]> writes:

>>> The second half would a pp-number, instead.  It is always true that
>>> splitting an identifier between characters yields two valid
>>> preprocessing tokens.
>>
>> Joseph has mostly explained this, but I should add that what you get
>> if you split, say, "a\u0660b", between the "a" and the backslash is
>> two identifiers, the second of which's "initial character is a
>> universal character name designating a digit", which violates a
>> shall-clause in a semantics paragraph, and therefore provokes
>> undefined behavior. (C99 6.4.2.1p3.)
>
> A shall-clause in a semantics paragraph requires a diagnostic, C99 
> 5.1.1.3.

Um, no, 5.1.1.3 does not say that.  It says a diagnostic is required
for a violation of any "syntax rule or constraint"; shall-clauses in
semantics paragraphs are neither.  Constraints only appear in
constraints paragraphs.  See 4p2 for the meaning of shall-clauses
outside constraints paragraphs.

zw


-- 


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


[Bug target/20617] shared SH libgcc is exporting too many symbols

2005-03-24 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-03-24 16:06 
---
Subject: Re:  shared SH libgcc is exporting too many
 symbols


Why not just add the problematic symbols to sh/libgcc-excl.ver?  That
is what it is there for.

zw


-- 


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


[Bug target/20617] [4.0/4.1 regression] shared SH libgcc is exporting too many symbols

2005-03-24 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-03-24 18:46 
---
Subject: Re:  [4.0/4.1 regression] shared SH libgcc is
 exporting too many symbols

"joern dot rennecke at st dot com" <[EMAIL PROTECTED]> writes:

> Almost all the symbols in config/sh/lib1funcs.asm are problematic.
> Moreover, adding a new function to lib1funcs.asm can inadvertantly
> create a new exported symbol.  It is much safer to make the symbols
> by default not exported.

You may want to consider use of LIB1FUNCS_ST instead of LIB1FUNCS, so
that the symbols are not put into libgcc_s.so in the first place.

> I'm currently working on merging most of the machine-dependent
> patches from our sources into gcc 4.1 - that's a 400 KB patch - and
> this will change most of the FUNC definitions in lib1funcs.asm to
> HIDDEN_FUNC, and all the ALIAS defintions into HIDDEN_ALIAS, and
> also change the way references to symbols in lib1funcs.asm are
> generated, so that for some symbols GOT references are made rather
> than PLT ones when compiling pic/PIC code.

This sounds fine.  I want to make sure that you understand the point
of my patch to remove the local copy of libgcc-std.ver.  From time to
time new global symbols are added to libgcc2.c.  Most of those are
appropriately visible from libgcc_s.so; in some cases it can be
essential that they are.  If an architecture has a private copy of the
version file, we have to remember to update it.  I observed that
people were forgetting to update SH's private copy, so I eliminated it.

Note that the private copy that you had, did *not* exclude hundreds of
lib1funcs.asm symbols.  The only symbols not in it, that were in
libgcc-std.ver, and were not due to people forgetting to update it,
are the symbols currently listed in sh/libgcc-excl.ver.

zw


-- 


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


[Bug target/20617] [4.0/4.1 regression] shared SH libgcc is exporting too many symbols

2005-03-24 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-03-24 22:54 
---
Subject: Re:  [4.0/4.1 regression] shared SH libgcc is
 exporting too many symbols

"joern dot rennecke at st dot com" <[EMAIL PROTECTED]> writes:

[LIB1FUNCS_ST]
> Won't this have the effect that any of the referenced symbols remain
> undefined in libgc_s.so, and will get a GOT (and in 4.0 even a PLT
> entry) in libgcc.so? 

You can avoid this problem by including libgcc.a in the final link of
libgcc_s.so.  Every global symbol in libgcc.a is or ought to be hidden
(that being a goal of all the work I put in on libgcc construction
last year) so the effect will be that libgcc_s.so gets private copies
of everything that it actually uses, but nothing more.

> I didn't say hundreds - I said some hundred.  greps counts 94 hidden
> functions ans aliases in my current lib1funcs.asm working copy.  The
> largest group, with 40 members, is probably the set of movstr* and
> movmem* functions, none of which was mentioned in libgcc-std.ver
> (and hence was excluded), and none of which is mentioned in
> sh/libgcc-excl.ver (and hence is now included).

It sounds like you are misunderstanding the way libgcc-excl.ver works?
It subtracts from the set established by libgcc-std.ver, not from the
set of all symbols that could be visible.  (If this is not happening,
there is a problem with your t-fragments or with mklibgcc.)

zw


-- 


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


[Bug target/20617] [4.0/4.1 regression] shared SH libgcc is exporting too many symbols

2005-03-24 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-03-24 23:54 
---
Subject: Re:  [4.0/4.1 regression] shared SH libgcc is
 exporting too many symbols

"joern dot rennecke at st dot com" <[EMAIL PROTECTED]> writes:

> So you are saying this needs to list only to-be-excluded symbols
> that are mentioned in libgcc-std.ver, and all the other symbols from
> lib1funcs.asm are automatically hidden?

Yes, that is how it is supposed to work.  If it isn't working that
way, either mklibgcc or your t-fragment is buggy.

> FWIW, __mulsi3 should also not be exported, although that is not a
> regression.

Feel free to add it to libgcc-excl.ver...

zw


-- 


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


[Bug preprocessor/19475] [3.3/3.4/4.0/4.1 Regression] missing whitespace after macro name in C90 or C++

2005-04-05 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-04-05 16:49 
---
Subject: Re: [PATCH] Fix PR preprocessor/19475

Jakub Jelinek <[EMAIL PROTECTED]> writes:

> Hi!
>
> This patch fixes PR preprocessor/19475 by issuing just warning, not pedwarn,
> for < ISO C99 if there is no whitespace between macro definition and
> replacement, but replacement starts with a basic character set character.
> Ok to commit?

OK except please remove the ?, ?= testcases as those tokens
are probably going to be removed in the near future.

zw


-- 


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


[Bug preprocessor/19475] [3.3/3.4/4.0/4.1 Regression] missing whitespace after macro name in C90 or C++

2005-04-05 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-04-05 17:05 
---
Subject: Re: [PATCH] Fix PR preprocessor/19475

Jakub Jelinek <[EMAIL PROTECTED]> writes:

> On Tue, Apr 05, 2005 at 09:49:19AM -0700, Zack Weinberg wrote:
>> > This patch fixes PR preprocessor/19475 by issuing just warning, not 
>> > pedwarn,
>> > for < ISO C99 if there is no whitespace between macro definition and
>> > replacement, but replacement starts with a basic character set character.
>> > Ok to commit?
>> 
>> OK except please remove the ?, ?= testcases as those tokens
>> are probably going to be removed in the near future.
>
> I know, but that IMHO shouldn't matter for the testcase.
> #define a should be still treated like
> #define a  in C90 (with a warning), no matter whether http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19475


[Bug preprocessor/19475] [3.3/3.4/4.0 Regression] missing whitespace after macro name in C90 or C++

2005-04-05 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-04-05 23:39 
---
Subject: Re: [PATCH] Fix PR preprocessor/19475

Per Bothner <[EMAIL PROTECTED]> writes:

> http://gcc.gnu.org/ml/gcc-patches/2005-04/msg00183.html

Yah, check that in already.

zw


-- 


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


[Bug target/20617] [4.0/4.1 regression] shared SH libgcc is exporting too many symbols

2005-04-06 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-04-06 20:03 
---
Subject: Re:  [4.0/4.1 regression] shared SH libgcc is
 exporting too many symbols

"amylaar at gcc dot gnu dot org" <[EMAIL PROTECTED]> writes:

> I just had a look, and actually there appears to be no variable called
> LIB1FUNCS_ST.

... so add one.

zw


-- 


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


[Bug target/20617] [4.0/4.1 regression] shared SH libgcc is exporting too many symbols

2005-07-15 Thread zack at codesourcery dot com


-- 
   What|Removed |Added

 CC|zack at codesourcery dot com|


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


[Bug debug/914] libgcc2 compile causes internal error for mips-wrs-vxworks

2005-06-14 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-06-14 07:09 
---
Subject: Re:  libgcc2 compile causes internal error for mips-wrs-vxworks


The target will eventually be readded, but you might as well close the
bug - it hasn't shown up in our internal testing, so it's probably
dead.

zw


-- 


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


[Bug preprocessor/9449] UCNs not recognized in identifiers (c++/c99)

2004-12-15 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-12-16 02:16 
---
Subject: Re: gcc and UCN in identifiers: bug PR 9449

Al Simons <[EMAIL PROTECTED]> writes:

> Hi, Zack.
>
> I'm looking into adding UCN support for identifiers into the HP
> C/C++ compiler, and wondered if there is any new status on your
> implementation / design?  We'd like to do things the same way if at
> all possible.

I don't intend to implement this feature until the C committee, the
C++ committee, and the Unicode committee all agree on which Unicode
character sequences are legitimate in identifiers and what sort of
canonicalization is to be performed.  As long as there is no
agreement, implementation of this feature risks indeterminacy in
shared library ABIs.

Suppose that the identifier "get_length_in_Ångstroms" is part of a
shared library's public interface.  The Å might be U+212B, U+00C5, or
U+0041 U+030A.  Suppose further that the person who implemented the
shared library used a text editor that generates NFD, so the library
header reads U+0041 U+030A.  But their compiler normalizes to NFC on
input, so the name in the shared library's symbol table reads U+00C5.
Now someone comes along with a compiler that does no normalization
whatsoever and tries to use the library.  They're going to get a link
error and they're not going to know why.  Worse, if someone recompiles
the library with a compiler that chose to normalize to NFD, its ABI
silently changes.

Joseph Myers insists that this situation cannot arise, because
C99/C++'s lists of valid Unicode code points in identifiers exclude
all combining forms.  But if I enforce those rules users will hate the
compiler, because their text editors will generate what looks like
perfectly fine text and then the compiler will barf on it.  And I am
not prepared to trust that every editor on the planet will adhere to
C99/C++'s rules.  And even if I were, we'd still have the problem of
the C99 and C++ lists not being identical.

> There is a link in the bug report that appears to be broken; any
> chance you can hook it back up?
>
> <<http://www.codesourcery.com/lists?2:mss:1481:danfdfbkjoaahbcmmeam>http://www.codesourcery.com/lists?2:mss:1481:danfdfbkjoaahbcmmeam>

My best guess is that this is now
<http://www.codesourcery.com/archives/cxx-abi-dev/msg00676.html>.
This is mostly about how to mangle non-ASCII characters in identifiers
to get them past limited linkers, and doesn't offer any help with the
problems I described above.

zw


-- 


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


[Bug preprocessor/9449] UCNs not recognized in identifiers (c++/c99)

2004-12-15 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-12-16 03:03 
---
Subject: Re:  UCNs not recognized in identifiers
 (c++/c99)


Because of the ABI implications, I consider it completely unacceptable
to implement this feature according to the letter of C99 or C++98. Ever.  
Once the "oddities" are resolved at the standards level, I will
consider supporting the feature as resolved, but *only* as resolved.

zw


-- 


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


[Bug c++/17964] [4.0 Regression] cpp error messages contain wrong line in C++

2005-02-08 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-02-09 02:28 
---
I am testing a patch for this bug now.

-- 
   What|Removed |Added

 Status|NEW |ASSIGNED
   Last reconfirmed|2005-01-11 13:34:31 |2005-02-09 02:28:52
   date||


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


[Bug c++/18491] testsuite failure: WARNING: g++.old-deja/g++.mike/p10769a.C compilation failed to produce executable

2005-02-09 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2005-02-09 23:58 
---
There is also p10769b.C (in the same directory) with exactly the same dubious
construct, this time marked as should-give-an-error.  Do we want to keep that 
one?


-- 


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


[Bug target/17982] [4.0 regression] asm declaration ignored due to conflict with previous rename

2004-10-13 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-10-13 23:29 ---
Subject: Re:  [4.0 regression] asm declaration ignored due to conflict with previous 
rename


Hmm.  Why are we calling assemble_external before EOF?

zw


-- 


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


[Bug c++/18047] [4.0 Regression] Wrong precedence between equality (==, !=) and < operators

2004-10-18 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-10-18 15:02 ---
Subject: Re:  [4.0 Regression] Wrong precedence between equality (==, !=) and < 
operators


I doubt that.  I'd be inclined to point fingers at the
operator-precedence parser patch, myself.

zw


-- 


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


[Bug target/6123] __pic__/__PIC__ not defined when -fpic/-fPIC is specified

2004-11-08 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-11-08 21:23 
---
Subject: Re:  __pic__/__PIC__ not defined when -fpic/-fPIC is specified


Ah.  This is why I thought it had already been done.  Maybe you want
to poke Alan Modra about the research he said he would do?

zw


-- 


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


[Bug middle-end/17982] [4.0 regression] asm declaration ignored due to conflict with previous rename

2004-11-23 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-11-23 22:19 
---
Subject: Re:  [4.0 regression] asm declaration ignored due to conflict with 
previous rename

"hjl at lucon dot org" <[EMAIL PROTECTED]> writes:

> --- Additional Comments From hjl at lucon dot org  2004-11-23 21:13 
> ---
> Does this patch
>
> --- gcc/c-pragma.c.rename   2004-11-09 12:03:42.0 -0800
> +++ gcc/c-pragma.c  2004-11-23 13:03:26.020304351 -0800
> @@ -473,8 +473,11 @@ maybe_apply_renaming_pragma (tree decl,
>  return asmname;
>
>/* If the DECL_ASSEMBLER_NAME is already set, it does not change,
> - but we may warn about a rename that conflicts.  */
> -  if (DECL_ASSEMBLER_NAME_SET_P (decl))
> + but we may warn about a rename that conflicts.
> + FIXME: the DECL_ASSEMBLER_NAME can be set to DECL_NAME (decl)
> + without renaming pragma nor asm declaration involved.  */

This will not work.  At this point ia64 has already emitted an
external-reference directive for the old name into the assembly
stream.

The necessary fix is to prevent assemble_external from ever being
called before EOF.

zw


-- 


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


[Bug middle-end/17982] [4.0 regression] asm declaration ignored due to conflict with previous rename

2004-11-27 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-11-27 20:25 
---
Subject: Re:  [4.0 regression] asm declaration ignored due to conflict with 
previous rename


That's not what HJ's patch does, though.

zw


-- 


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


[Bug preprocessor/16621] [4.0 Regression] C4x fails miserably

2004-11-27 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-11-27 20:25 
---
Subject: Re:  [4.0 Regression] C4x fails miserably


I have no plans to do anything about this bug.  Someone who cares
about C4x should look at it.

zw


-- 


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


[Bug middle-end/17982] [4.0 regression] asm declaration ignored due to conflict with previous rename

2004-11-28 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-11-28 20:16 
---
Subject: Re:  [4.0 regression] asm declaration ignored due to conflict with 
previous rename


You continue not to get it.

In this context, DECL_ASSEMBLER_NAME has been set because
assemble_external has been called on the symbol.  assemble_external is
*not* a no-op on ia64.  It emits a directive to the assembly output,
using the name of the symbol.  It is *not* safe to rename the symbol
after that has happened.  That you are not seeing a problem on
ia64-linux is either because GAS isn't as picky as the reference
assembler, or because your test case is not stringent enough.

zw


-- 


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


[Bug middle-end/17982] [4.0 regression] asm declaration ignored due to conflict with previous rename

2004-11-29 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-11-29 16:38 
---
Subject: Re:  [4.0 regression] asm declaration ignored due to conflict with 
previous rename


... so this has always been broken, is that what you're saying?

zw


-- 


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


[Bug middle-end/17982] [4.0 regression] asm declaration ignored due to conflict with previous rename

2004-11-29 Thread zack at codesourcery dot com

--- Additional Comments From zack at codesourcery dot com  2004-11-29 17:15 
---
Subject: Re:  [4.0 regression] asm declaration ignored due to conflict with 
previous rename


I'm hoping to have some time to work on this this week, but no
promises.

zw


-- 


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