X

祝・GCC 3.0リリース

■ このスレッドは過去ログ倉庫に格納されています
1さあね
垢版 |
NGNG
 一昔前は、そこらの商用コンパイラよりも良い最適化をする
といわれたGCCも最近は色あせてきてたけど。。。
 待望の新バージョンリリースで巻き返しなるか?

 とりあえずインストールしてみよう
479名無しさん@お腹いっぱい。
垢版 |
NGNG
いまだにOpenBSD上でgcc2.95系使ってる俺って…
NGNG
>>477
その説明はおかしい。
unsigned short にキャストしているから、
たとえば ch が -128 なら
(unsigned short の最大の値+1)-128になる。
大抵の環境で、unsigned short の最大の値は 127 より大きいので、
(unsigned short)ch は 127 よりおおきい値になり得る。
>>475
gccの問題のようですね。比較の相手を127でなくて1にしても
同じ症状が出ますから、charの範囲、という問題でもない。
NGNG
>>480
> 大抵の環境で、unsigned short の最大の値は 127 より大きいので、
> (unsigned short)ch は 127 よりおおきい値になり得る。
そこで止まっちゃだめだよ。

もしch = -128だったら、unsigned shortにキャストした段階で符号ビットを
延長するので左辺は1...10000000。一方、右辺は整数定数127。これはサフィ
クスがない10進数でintで表現しきれるのでintとして扱われる。

比較演算子の左辺はunsigned short、右辺はintだから、演算を適用する前に
両方ともintへキャストされる。intはunsigned shortより小さいことはないか
ら、左辺のビットパターンはそのまま。よって最初のchが負の値の場合、キャ
スト後のintとしての左辺も必ず負の値になるので、この条件文は常に偽。
NGNG
>>481
感動した
NGNG
>>481
> intとしての左辺も必ず負の値になるので

なりませんよ。
signedをunsignedにしたばあい、unsignedの範囲に入るようにunsignedの最大値+1を
必要な回数だけ加算する。singed char -1をunsigned shortにした場合USHRT_MAXになる。
つぎに、int以下の整数演算はintに格上げされて演算される(右辺がintでなくても格上
げされる)が、値保存で変換されるのでUSHRT_MAXのまま。

unsigned shortがintより範囲が広い場合、両辺がunsigned shortに変換されて比較されるので、
結果は同じ。
NGNG
>>481
ちがう。ch=-128 (10000000) で
unsigned short が 16 ビットだとしたら、
左辺は 1111111110000000 になる。これを int (符号付き)
に promote (キャストではない) させる。
int が 32 bit だとしても、unsigned short からの
変換だから、左に 1 は補われない。ゆえに、
00000000000000001111111110000000
になる。
NGNG
>>475
if ((unsigned int)ch > 127)
にしる。
どうしても unsigned short で比較したい場合は
右辺も unsigned short の入れ物に入れる。
NGNG
unsigned shortにキャストする意味って何?
NGNG
プログラムの意図が全くわからんな。
int hoge(signed char ch)
{
return ch >= 0;
}
ってやりたいわけ?
NGNG
gcc の中の人も大変だな。
NGNG
signed charなんてものを作った奴は腹かっさばいてお詫びしろや。
NGNG
符合付き8bit整数はごく普通のデータ型ですよ。
8080とかね。
NGNG
つーか最初にchar をungigned なoctet にした奴に栄光あれ、だな。
NGNG
規格上はどっちでもいいよ。
signed char, unsigned charと同じ値を持たなくてもいいし。
493 ◆ieqrh9GF7Y
垢版 |
NGNG
例はバグを簡略化したものです。
>>484 同じ解釈です。
>>480 gcc の問題とすると報告すべきはどこ? <- 元の質問の意図
127 を 128 にすると、if は残る。逆に gcc -O0 で作っても
if 部分は影も形もなくなるので、Optimizer の仕業ではなく、
C言語仕様解釈の問題だと思ってる。
NGNG
http://gcc.gnu.org/faq.html#bugreport
NGNG
このプログラムのほうが問題点が明確になるかな。
i は明らかに 1より大きいのに、それを1と比較すると0になる。
-O0でも同じ。 gcc2.95.4だと期待した通りになる。
#include <stdio.h>

main()
{
char c = -128;
int f, i;
i = (unsigned short) c;
f = (unsigned short) c > 1;
printf("i => %d, i>1 => %d\n", i, f);
}
NGNG
些細なことですが return 0; しとこうね。
NGNG
precompiled header に魅かれてgcc3.4インストールしたのに
>sorry, unimplemented: had to relocate PCH
って言われた。
どういうことじゃヽ(`Д´)ノ
498名無しさん@お腹いっぱい。
垢版 |
NGNG
>>495-496
C99では明示的にreturn 0;を書く必要はありませんね。
まあ gcc2.95.4 には関係ないことでしょうけど。
NGNG
>>478
SHARC/TigerSHARC は char は32bitですよ。
こいつはGCCが標準コンパイラです。
NGNG
じゃ、shortも32bitなんだ
NGNG
>>495を、
gcc -c -O -dra foo.c すると、"ce1"の後に消える。
gcc -c -O0 -dra foo.c すると、なぜかcompareは残ったままだね。
"mach"の後で消えてるのかな。

NGNG
>>500
鋭いですね、そうですよ。
で、sizeof( 整数の型名 ) するとどれも1が返ってきてあせる(笑)
バイトアドレシッシングじゃなくてワードアドレッシングだからこれで正解なんだろうけど
NGNG
BCPLかよ!?
NGNG
よく分かんないんだけど、つまりCHAR_BITSが32ってこと?
NGNG
3.4.0 release sage
506名無しさん@お腹いっぱい。
垢版 |
NGNG
>>505
gccの公式ページよりdistrowatchの方が早くアナウンスしてたのには
驚いた。
まだ使うにはたぶん危険だよね?パフォーマンスはアップしてるのかな?
NGNG
危険大好き
NGNG
>The cast-as-lvalue extension has been removed for C++ and deprecated for C and Objective-C.

これってANSIかなんかの規格がそうなってるのかな?
ときどき使ってるからちょと痛い
NGNG
ttp://gcc.gnu.org/ml/gcc-prs/2003-05/msg01253.html
NGNG
ミラー逝きわたるっていったいどこを泳いでるの?
全然見当たらないんだけど。
NGNG
http://gcc.gnu.org/ml/gcc/2004-04/msg00841.htmlってことだからなぁ
NGNG
>>510
一昨日にはもう ftp.iij.ad.jp にあったぞ。
NGNG
ringも来てるところはある。
NGNG
そんなことより3.3.3はなんで沈没してるんだ
NGNG
gccは3.3.3が最高傑作。とか後々までかたられるでしょう。
NGNG
>>515
なんだって〜(AA略)
NGNG
騙られる、だったりして
NGNG
>>495の3.4.0だとfは1になってる。
519名無しさん@お腹いっぱい。
垢版 |
NGNG
>>508
3.4.0でのビルドを試して見ましたが、3.3以前でOKだった、幾つかの作法の悪いプログラムは全滅ですね。
丁寧に直せばいいんでしょうけどね…
NGNG
3.5からはCもエラーにするらしい。
早めに直しておきませう。
NGNG
縛りがきつい方が有難い。
NGNG
きついのに血行を妨げないのがプロの縛り方
523名無しさん@お腹いっぱい。
垢版 |
NGNG
nmしたときやg++ -Sしたときに、コンストラクタやデストラクタに
Foo::Foo[in-charge]() のように[なんちゃら]と注釈が入っている場合がありますけど、
これって何ですか?どこかに解説ありませんか?

in-charge, not-in-charge, in-charge deleting などがあるようで...

524名無しさん@お腹いっぱい。
垢版 |
NGNG
ドスドスドスドス
この洗いを作ったのは誰だぁ!!
NGNG
雄山?
526名無しさん@お腹いっぱい。
垢版 |
NGNG
だな。
NGNG
>>523
$(GCC)/gcc/cp/decl2.c
/* Constructors for types with virtual baseclasses need an "in-charge" flag
saying whether this constructor is responsible for initialization of
virtual baseclasses or not. All destructors also need this "in-charge"
flag, which additionally determines whether or not the destructor should
free the memory for the object.

$(GCC)/gcc/cp/mangle.c
/* Handle destructor productions of non-terminal <special-name>.
DTOR is a destructor FUNCTION_DECL.

<special-name> ::= D0 # deleting (in-charge) destructor
::= D1 # complete object (in-charge) destructor
::= D2 # base object (not-in-charge) destructor
NGNG
>>522
めちゃワロタ
NGNG
gcc3.3.4のチャンゲログが無いですがな
NGNG
3.x はバージョン進むのが早いな。
NGNG
ICEってかっこいい響きだよな
NGNG
ドイツの新幹線もICE
NGNG
Inter City Express というのか。
In-Circuit Emurator
Internal Compiler Error
あとは?
NGNG
X11のInter-Client Exchange protocolもな
NGNG
Integral
Cool
Energy
536名無しさん@お腹いっぱい。
垢版 |
NGNG
Solaris9で、バイナリーのgcc-3.4.1をインスコしたら

ld.so.1: gcc: 重大なエラー: libiconv.so.2: open に失敗しました: ファイルもディレクトリもありません。
強制終了

となってしまいます。
2台やって2台とも同じでした。
iconvのバイナリーってどこで入手できますか?
NGNG
>>536
おんなじとこにあるべ
538名無しさん@お腹いっぱい。
垢版 |
NGNG
GCC 3.4.2 age
NGNG
>>536
Bruno Haible
NGNG
3.4.1 から 3.4.2 に上げたら生成されるバイナリが
libgcc_s.so.1 をリンクするようになった。
このへん何か変わった?
NGNG
うん。
NGNG
GCC 4.0のおいしいところは?
NGNG
スパイスが効いているところ。
NGNG
ひどいめにあわすよ
NGNG
プリコンパイルヘッダの作り方は
gcc /usr/include/**/*.h
でいいんだっけ?
NGNG
http://gcc.gnu.org/onlinedocs/gcc-3.4.2/gcc/Precompiled-Headers.html#Precompiled-Headers
NGNG
Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.3/specs
Configured with: ../gcc-3.4.3/configure --disable-nls
Thread model: posix
gcc version 3.4.3
NGNG
さてGCC4のリリースも近づきつつある今日この頃。
自分はこまめにビルド・チェックするほどの追っかけじゃなかったけど、GCC3というプロダクトはどのような評価に値する物だったのでしょか。

漏れには、伽藍時代よりテンポ良くリリースされていった分、各Linuxディストロもそれに振り回されてたような印象が。
あとGCC3は、例えば2.95.xや2.7.2.3並みに安定感のあるリリースがなされてたのでしょうか。

よろしければみんなの御意見、どぞ。
NGNG
g++のC++規格追従上、3.X以外に考えられない。
NGNG
3.4系はほとんど使われないまま4.0に移行しそうな予感が。
NGNG
いまだに 2.95.x だよ。もう 4.x の足音が聞こえるような時期なのか。
NGNG
神ID

http://life5.2ch.net/test/read.cgi/northa/1101482061/2
2:名無しさん []:04/11/27 00:26:40 ID:LIqjWGCC
逃げっと
553名無しさん@お腹いっぱい。
垢版 |
05/01/27 12:55:20
あげ
05/01/27 15:15:15
gcc-4.0 が出るまでにこのスレを使いきろう…
05/01/27 17:29:04
いつ出るのさ
05/01/27 21:02:08
>>555
予定では近いうちに出るはずだが。

漏れ的にはsh-elfの-m2aが腐っているぽいのでもう少し待ってほしい所ですな。
05/01/27 22:05:24
(´-`).。oO(Unix板にGCCって必要なんだろうか。。。)
05/01/28 18:09:11
>>557
必要ないの?
05/02/04 14:34:09
gcc.gnu.orgがHDDあぼーんしたらしい。
05/02/04 21:28:00
>>559
そうらしいね。
なんかファイルシステムに問題あったらしいよ。
現在、復旧中らしい。
05/02/04 21:31:39
反GPLな奴らのアタック
05/02/05 02:29:14
アナウンスが来てから12時間ほど経ったが…まだ復旧してないのか。
これは長引きそうだな。

まあ急ぐ用事も無いから別に構わんが。
05/02/08 22:08:57
4.0で新しくなる項目だとよ

What will be in 4.0
ttp://gcc.gnu.org/wiki/What%20will%20be%20in%204.0
2005/04/22(金) 11:05:39
gcc-4.0 が出たらしいですが、スレ違いでしょうか
2005/04/22(金) 12:32:04
びみょー
566名無しさん@お腹いっぱい。
垢版 |
2005/04/27(水) 13:50:34
gcc-4.0 で fortran を使うにはどうしたらよいでしょうか?
2005/04/27(水) 13:54:41
>>566
スレタイ見ろよ。
スレ違いもいいとこだろが。
ったく。
2005/04/27(水) 14:39:07
>>567
>>563
2005/04/27(水) 14:42:23
GCC 3.0がリリーナされるのはいつですか?
2005/04/28(木) 00:03:01
3と4は別スレじゃなくてもいいんじゃね?
2005/04/28(木) 00:29:45
しっかし、このスレ息長すぎー。
4年近く存在するのか。
2005/04/28(木) 13:39:53
遅蒔きながら、祝・GCC 4.0リリース。

gcc.gnu.org/gcc-4.0/changes.html とかは当然読んだんだけれど、他のサイトでリリースに対する反応があったらURLコピペぷりーず。
2005/04/28(木) 18:29:22
とりあえず /. の記事。

GCC 4.0.0 Released
http://developers.slashdot.org/article.pl?sid=05/04/21/2125235

GCC 4.0.0リリース
http://slashdot.jp/article.pl?sid=05/04/22/101234
2005/05/03(火) 22:28:44
A Review of GCC 4.0
http://developers.slashdot.org/article.pl?sid=05/05/02/1415220
2005/05/05(木) 20:16:14
GCC 4.0
A Review for AMD and Intel Processors
http://www.coyotegulch.com/reviews/gcc4/
2005/05/05(木) 20:27:58
しまった。>>574 の元記事だったか。
2005/05/14(土) 05:43:22
いまだにgcc-2を使っていますが何か?
2005/05/14(土) 09:18:39
>>577
ニートですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況