03/05/08 01:39
Pentium Mで最適化って-mcpu=pentium3でエエのかしら?
i686にしといたほうが無難か?
351:
03/05/08 01:48
-O3 が無難
352:名無しさん@お腹いっぱい。
03/05/08 04:22
-mcpu=pentium3と-mcpu=i686ってどこがちがうの?
353:名無しさん@お腹いっぱい。
03/05/08 04:27
i686にはPenPro,Pen2やAthlonも含むんじゃないの?
354:名無しさん@お腹いっぱい。
03/05/08 04:32
>>352
gccのソース嫁
とりあえずi386.mdってのを探すべし
355:名無しさん@お腹いっぱい。
03/05/15 13:27
3.3リリースあげ
URLリンク(gcc.gnu.org)
356:名無しさん@お腹いっぱい。
03/05/16 04:12
9か月ぶり。おめでとう!!
357:名無しさん@お腹いっぱい。
03/05/20 02:09
3.3だとglibc-2.3.2がコンパイル通らなくねっすか?
358:名無しさん@お腹いっぱい。
03/05/20 17:46
>>357
そんなものを何のためにコンパイルするのかな?
ひょっとして禿しく板違い?
359:あぼーん
あぼーん
あぼーん
360:名無しさん@お腹いっぱい。
03/05/30 22:13
gcc 3.3 でCのコードをコンパイルしようとした時,
/tmp/ccSthUIX.s: Assembler messages:
/tmp/ccSthUIX.s:1820: Error: invalid character '.' in mnemonic
というようなエラーが出てきて,該当するアセンブリ出力を見てみたら
cmovl.ge %eax, %ebx
というものだったんだけど,これは gcc 側がおかしなニーモニックを
吐き出しているのか,それとも as 側がおかしいのか,どちらでしょうか?
as は binutils 2.13.2.1
361:360
03/05/31 00:03
URLリンク(www.intel.com)
を見ると,"cmovl.ge"なんて命令はなさそうだし,gcc側がおかしいのかなぁ.
362:名無しさん@お腹いっぱい。
03/05/31 14:05
>>361
CMOVGEでは?
gasのオペコードもcmovgeで定義されてるねえ。
gccのi386.md追っかけてないけど、gccの問題臭いな。
363:名無しさん@お腹いっぱい。
03/06/01 17:26
gcc2.9x系と3.0との違いは何ですか?
ポインタだけでも結構ですので、ご存知の方がいれば
おしえてください。
364:名無しさん@お腹いっぱい。
03/06/01 17:44
>>363
URLリンク(gcc.gnu.org)
365:名無しさん@お腹いっぱい。
03/06/01 18:18
>>364
さんくす。
主な変更点は、
・最適化の強化(末尾再帰呼び出しの除去など)
・サポートするプラットフォームの増加(IA64など)
・Javaのサポート
・C++まわりの改良
・C言語の新しい規格C99への対応を強化(完全準拠ではないみたい)
・新しく書き直されたプリプロセッサ
・内部仕様の変更(ガーベージコレクションを採用、文脈自由文法の
解析アルゴリズムを変更など)
こんなかんじでしょうか。
ところで
「New tail call and sibling call elimination optimizations.」
は末尾再帰呼び出しの除去だと思ったんだけど、あってる?
366:名無しさん@お腹いっぱい。
03/06/01 22:58
再帰だけじゃなくて、
return foo();
みたいのを関数呼び出しからジャンプに変更するとかも含まれんじゃないかな。
367:名無しさん@お腹いっぱい。
03/06/05 23:39
これってヤバイの?
URLリンク(www.iss.net)
368:名無しさん@お腹いっぱい。
03/06/06 15:38
そもそも見慣れない構文なんだが。C99か?
いずれにしても、そんな機能を使ってるプログラムは
まず無いだろうな。
369:名無しさん@お腹いっぱい。
03/07/10 12:53
Debian/sarge使ってます。
g++を3.3.1-0pre0にしたらblitz++がコンパイルできなくなっちゃって、
3.3-2に戻したらコンパイルできるようになりました。
gccが悪いのかblitz++が悪いのかはわかりません。
こういうときはどこかに報告するべき?
370:名無しさん@お腹いっぱい。
03/07/10 13:06
>>369
原因を特定できないのなら、ろくな説明ができないと
思われますので報告は必要ないですね。
特定できるのなら詳細なバグレポートを。
371:名無しさん@お腹いっぱい。
03/07/10 14:08
/* BEGIN-----------
#include<iostream>
#include<fstream>
using namespace std;
int main(){ return 0; }
/* END-------------
というプログラムをFreeBSD5.1のGCC3.2.2でコンパイルしたら
#include<fstream>の部分が原因で、
/usr/include/g++/fstream:304: warning: `typename std::basic_filebuf<_CharT,
_Traits>::int_type' is implicitly a typename
/usr/include/g++/fstream:304: warning: implicit typename is deprecated, please
see the documentation for details
/usr/include/g++/fstream:309: warning: `typename std::basic_filebuf<_CharT,
_Traits>::int_type' is implicitly a typename
/usr/include/g++/fstream:309: warning: implicit typename is deprecated, please
see the documentation for details
というエラーがでます。
GCC2.9.5では何もエラーは起らないのですが、原因知ってる人がいたらおねがいします。
372:名無しさん@お腹いっぱい。
03/07/10 15:06
(´-`).。oO(warningとerrorの区別がつかないDQNがここにもひとり…)
373:名無しさん@お腹いっぱい。
03/07/10 15:12
(´-`).。oO('GCC2.9.5'とは随分若いバージョンを使ってるな)
374:名無しさん@お腹いっぱい。
03/07/10 15:16
(´-`).。oO(それ以前に2.9.xなんてバージョン世間一般に公開されてないだろ)
375:名無しさん@お腹いっぱい。
03/07/10 20:11
>>371
なんか-CURRENTでそんな話読んだ記憶がある。
ヘッダファイルが古いからだったか。
どうせg++3.3に上げるから放置じゃなかったかな。
portsからいれれば問題ない。
>>372
正しいプログラムにwarningが出るのは問題だろ。
C++ってしってる?
376:名無しさん@お腹いっぱい。
03/07/10 22:42
"正しい"プログラムだからこそwarningになるのであって、
"正しくない"プログラムが(errorではなく)warningにしかならないのであれば、
そっちのほうが大問題。
まあ、C++規格のうつろいの激しさを知らないピュアな>>375に乾杯。
377:371
03/07/11 00:34
>"正しい"プログラムだからこそwarningになるのであって、
>
結局このwarningは消せないのでしょうか?
毎回出て来るのは正直ウザいので
378:名無しさん@お腹いっぱい。
03/07/11 00:48
>>377
portsのgcc32かgcc33でもインスコして常にそっちを使うようmake.confで指定しとくとか
379:名無しさん@お腹いっぱい。
03/07/11 01:12
warning
380:名無しさん@お腹いっぱい。
03/07/11 01:21
とりあえずCFLAGSに"-Werror"を付けておけば
warningで悩まされることはなくなる次第
381:名無しさん@お腹いっぱい。
03/07/11 03:58
ワーニング
382:名無しさん@お腹いっぱい。
03/07/11 05:25
>>376
> "正しい"プログラムだからこそwarningになるのであって、
はぁ?ISO/IEC 14882って読んだことありますか?
> まあ、C++規格のうつろいの激しさを知らないピュアな>>375に乾杯。
自分のことだろw
いまだに頭の中がARMなんだろうな…
383:名無しさん@お腹いっぱい。
03/07/11 05:52
非建設的な煽りは御遠慮ください
384:名無しさん@お腹いっぱい。
03/07/11 06:22
>>383
372-384のうち375の前半と378以外は全て非建設的だがな。
385:名無しさん@お腹いっぱい。
03/07/11 09:01
わはは、ピュアな脊髄反射だなあw
んで、マジレスするとISO/IEC 14882には
そもそもここで言うerrorとかwarningという用語は登場しないし、
"正しい"プログラムにdiagnostic messageを出してはいけないとも書いてないわけだが。
386:名無しさん@お腹いっぱい。
03/07/11 11:17
そういう話題はプログラミング板とかでやって。
387:名無しさん@お腹いっぱい。
03/07/11 19:38
プログラミング板ってどこ? >>386=382=375
まあ、FreeBSDなんぞの不具合を延々引っ張られるのも
たしかに迷惑だが。
388:名無しさん@お腹いっぱい。
03/07/11 19:38
>>385
もうやめとけw
389:375
03/07/11 19:40
>>387
本当は375==382==384==388だよ。
390:名無しさん@お腹いっぱい。
03/07/11 20:29
>>385の方がやや劣勢?
391:名無しさん@お腹いっぱい。
03/07/12 09:48
まあ、とりあえず、
> `typename std::basic_filebuf<_CharT, _Traits>::int_type' is implicitly a typename
> implicit typename is deprecated
ちゅうことで。
392:あぼーん
あぼーん
あぼーん
393:名無しさん@お腹いっぱい。
03/07/18 00:42
gcc3.3でmips用が作れない…。
どうしたものか
394:名無しさん@お腹いっぱい。
03/07/18 01:58
>>393
ayamura?
395:名無しさん@お腹いっぱい。
03/07/18 02:32
>>393
エラーはどんなかんじなの?
396:393
03/07/23 01:26
>>395
はい、まず手順から
gcc-3.3.tar.gz,newlib-1.11.0.tar.gz,binutils-2.13.2.1.tar.gzを
ftp.ring.gr.jpからもってくる
~/source/toolchain/以下に展開する。
# binutilsのインストール
cd binutils-2.13.2.1
./configure --prefix=/usr/local/cross --target=mips-embedded-elf
make
su -m
make install
ここで~/.cshrcに手を入れて/usr/local/crossにPATHを通す。
source ~/.cshrc
397:393
03/07/23 01:27
# gccのインストール
cd ,../gcc-3.3
ln -s ../newlib-1.11.0/newlib .
./configure --prefix=/usr/local/cross --target=mips-embedded-elf \
--with-newlib --enable-languages="c,c++"
make (ここでエラー)
xgcc: installation problem, cannot exec `mips-tfile': No such file or directory
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3/gcc
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3/gcc
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3
googleでmips-tflileを検索すると--with-gnu-asをつけた方がよい
との例があったので、それを追加して再チャレンジ
URLリンク(www.spacelan.ne.jp)
(gcc-3.3/ ディレクトリは一度消してやりなおし)
398:393
03/07/23 01:27
make (またエラー)
tiswctype.c ..linked
twctrans.c ..linked
twctype.c ..linked
wctype.exp ..linked
creating cache ../config.cache
configure: error: can not find install-sh or install.sh in .. ./..
*** Error code 1
Stop.
make: stopped in /home/tak/source/toolchain/gcc-3.3
ここで力尽きました。(gcc-3.3/ にはinstall-shがあるのに・・・)
399:393
03/07/23 01:30
本当は--enable-sharedと--enable-threadsもつけたいのですが
まず基本をするためにこのように(>>396-398)しました。
ただわからないのは、BSDには自前のlibcがあるのに
newlibが必要なのかと言うところです。
googleで検索するとみんなやり方がばらばらで
調べれば調べるほどどんどんわからなくなっていきます。。。
400:393
03/07/23 01:33
このやり方はgoogleとEmbedde UNIX,、
UNIX USERのGBA特集(--targetの指定の仕方)を参考にしました。
長くなりましたがよろしくお願いします
401:393
03/07/23 01:34
何度もすいません
hostはAthlon-xp1800+(つまりi386)のNetBSDです。
402:名無しさん@お腹いっぱい。
03/07/23 09:58
そんなに苦労して再コンパイルしたって、
目に見えて大きな変化は無いと思うんだけどね。
403:名無しさん@お腹いっぱい。
03/07/23 12:01
install-shをそれっぽいディレクトリにばらまいてみては?
404:名無しさん@お腹いっぱい。
03/07/23 18:06
っていうか、 .. って云ってるんだから gcc-3.3/ じゃなくてその上、
toolchain/ に置けばよさそうな気がする…
昔 cygwin で gcc compile したときも、一つ上に置いてたし。
405:393
03/07/23 22:59
>>402
VR4100シリーズのパイプライン最適化を試してみたいのです。
(GCC-3.3からなので)
効果がなるほどと思える物であれば
この先の3.4とかをプロジェクトに使おうかと・・・。
少しでも性能を上げたいんです、はい。
>>403-404
ではやってみます。
406:名無しさん@お腹いっぱい。
03/07/23 23:47
>>399
> ただわからないのは、BSDには自前のlibcがあるのに
> newlibが必要なのかと言うところです。
自前のlibcなんて、今後放置プレーなんじゃないの?
407:名無しさん@お腹いっぱい。
03/07/24 00:40
>>406
は?
408:名無しさん@お腹いっぱい。
03/07/24 01:27
>>407
夏厨は放置プレーしる
409:名無しさん@お腹いっぱい。
03/07/24 08:20
無知がnewlib使ってGPL汚染ウマー
410:名無しさん@お腹いっぱい。
03/07/24 13:21
newlibってeCosのためのライブラリだと思ってたけど
これって間違ってますか?
411:名無しさん@お腹いっぱい。
03/07/24 13:37
まあもともとは組み込みOS向けのちっこいlibcってことで開発
されたんだろうけど、いまとなってはCygwinが主要ターゲットって
説も…。
412:名無しさん@お腹いっぱい。
03/07/24 14:48
>>410
元になってるだけ。
413:393
03/07/31 21:56
試行錯誤してました。
まず、>>403-404
install.shをばらまくのはどうもだめでした。
ここで途方に暮れること数日・・・・。
そこでNetBSD1.6.1のクロスtoolchainの構築をlogに残して
どんなことやってるのか見てみました。
あと、build.shで作ることの出来るmips用includeファイルと
libを使えば良いんじゃないかと思い
こんなconfigureオプションにしてみました。
binutils
./configure --prefix=/usr/local/cross \
--target=mipsel--netbsd --with-gnu-as --with-gnu-ld \
--disable-nls --disable-shared
gcc-3.3
./configure --prefix=/usr/local/cross \
--target=mipsel--netbsd --with-gnu-as --with-gnu-ld \
--disable-nls --disable-shared \
--with-headers=$mipsel_include_path --with-libs=$mipsel_libs_path
なんとかうまくいきましたが疑問が・・・・・。
このheaderとlibは、あるディレクトリ以下の閉じたソースで
includeファイルをmake時に決めうちする場合
このgcc-3.3でつくるオブジェクトには影響しないんですよね。
つまりはこのheaderとlibはgcc-3.3構築のみに
使われると思ってるんですが・・・
認識あってますでしょうか?
414:393
03/07/31 21:59
あとgcc-3.3のマニュアルには
-mno-half-pic -mhalf-picがあるんですが
しらないオプションと言われるんです。
gccのメーリングリストで見つけました。
昨年の6月に削除されたようです・・・。
そのためNetBSDカーネルコンパイルできない・・・・。
マニュアルアップデートしてないのホントですね
415:名無しさん@お腹いっぱい。
03/08/01 15:25
>>413
libsupc++とか作るときに見るはず。
libgccも見てるっけ?
416:あぼーん
あぼーん
あぼーん
417:名無しさん@お腹いっぱい。
03/08/09 13:53
3.3.1 age
418:あぼーん
あぼーん
あぼーん
419:あぼーん
あぼーん
あぼーん
420:あぼーん
あぼーん
あぼーん
421:名無しさん@お腹いっぱい。
03/09/04 16:21
gccは糞
422:名無しさん@お腹いっぱい。
03/09/04 21:31
お通じありがたし
423:名無しさん@お腹いっぱい。
03/09/05 23:04
gccは糞
424:名無しさん@お腹いっぱい。
03/09/05 23:34
3.4 でまた C++ ABI 変わるってほんと?
425:名無しさん@お腹いっぱい。
03/09/06 12:01
>>424
URLリンク(gcc.gnu.org)
426:名無しさん@お腹いっぱい。
03/10/19 00:30
3.3.2age
427:名無しさん@お腹いっぱい。
03/10/19 20:25
Plamo Linux 2.2.6 上で gcc-3.3.2 をビルドしようとしてるんだが、
$ cd /usr/local/src
$ tar zxf ~/gcc-3.3.2.tar.gz
$ mkdir gccobj
$ cd gccobj
$ ../gcc-3.3.2/configure --prefix=/usr
$ make bootstrap
/bin/sh ./libtool --tag=CXX --mode=link /usr/local/src/gccobj/gcc/xgcc -shared-l
ibgcc -B/usr/local/src/gccobj/gcc/ -nostdinc++ -L/usr/local/src/gccobj/i686-pc-
linux-gnu/libstdc++-v3/src -L/usr/local/src/gccobj/i686-pc-linux-gnu/libstdc++-v
3/src/.libs -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem
/usr/i686-pc-linux-gnu/include -L/usr/local/src/gccobj/i686-pc-linux-gnu/libjav
a -ffloat-store -g -O2 -o libgcj.la -objectlist libgcj.objectlist \
../boehm-gc/libgcjgc_convenience.la ../libffi/libffi_convenience.la ../zlib/libz
gcj_convenience.la \
-rpath /usr/lib/. -rpath /usr/lib/. -lpthread ./libltdl/libltdlc.la -version-i
nfo `grep -v '^#' ../../../gcc-3.3.2/libjava/libtool-version`
ここでループしちゃって帰ってこない。
なんでだろ?
428:名無しさん@お腹いっぱい。
03/10/20 04:10
>>427
> ここでループしちゃって帰ってこない。
> なんでだろ?
まちつづけることが重要です。
429:427
03/10/20 11:59
>>428
修行がたりませんでした。
いい子にして待ちます。
ども。
430:427
03/10/21 14:08
長い...。
24 時間たっても終わらないよぅ(Celeron 1.4GHz)。
431:427
03/10/21 15:44
終わった...。
26 時間ばかりかかったです。
こーゆーのを見ると旧式になったのだなぁと思ふ。
432:名無しさん@お腹いっぱい。
03/10/21 21:38
世間ではCeleron 1.4GHzで旧式なのか...........
433:427
03/10/21 22:13
いや、俺もそんなことはないと思いたいのだが、
1アプリにすぎない gcc のビルドに丸1日かかっちゃうと
ちょっと切ない気持ちになる。
フツーに使う分には十分な性能なんだがな。
434: ◆Ir5kue8F32
03/10/21 22:16
>>431
gmake -j 2 bootstrap
とかしてる?
435: ◆Ir5kue8F32
03/10/21 22:19
Status of processor 1 as of: 10/21/03 22:19:15
Processor has been on-line since 10/20/03 02:54:11.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
Status of processor 3 as of: 10/21/03 22:19:15
Processor has been on-line since 10/20/03 02:54:12.
The sparcv9 processor operates at 296 MHz,
and has a sparcv9 floating point processor.
というマシンで今からビルドしてみます。
とれくらいかかるかな?
436:名無しさん@お腹いっぱい。
03/10/21 22:21
書きわすれた。
>>427
java で馬鹿みたいに時間喰ってるので、java を使用しないのであれば、
--enable-languages="c,c++,f77,objc,ada"
でかなり時間を節約できます。
437:名無しさん@お腹いっぱい。
03/10/21 22:41
漏れは--enable-languages=c,c++だけだな
438:名無しさん@お腹いっぱい。
03/10/22 00:01
libgcc_s.soをdynamic linkされるのがうっとおしいので
いつもspecsファイルを手で変更しているのですが、./configure
のオプションなどで変更できるのでしょうか?
439: ◆Ir5kue8F32
03/10/22 02:30
>>438
--disable-shared
440:名無しさん@お腹いっぱい。
03/10/22 11:51
>>435
03:38 に終わっていました。
一日もかかりませんでした。
441:427
03/10/22 14:48
あー、何も考えないで 427 の手順のままやっちまったよ。
>>434
CPU 1個のシステムでも結構効果上がる?
つか、試してみます。
>>436
ですね。
今までこんなに時間がかかったことがなかったから
ちとびっくりした。
3.3 のときはせいぜい数時間だったような。
442:438
03/10/22 23:29
>>439 THX
443:名無しさん@お腹いっぱい。
03/10/23 12:24
>>441
なんとなくメモリ不足でスラッシング起こしているんでは?
とか思ってみる。
444: ◆Ir5kue8F32
03/10/23 19:29
>>442
ちなみに、既にインストールされているものは手動で消さなきゃだめ。
445:名無しさん@お腹いっぱい。
03/11/01 17:38
H8用cross、未だ3.0.3+平田patchを超えられず(;´Д`)
446:名無しさん@お腹いっぱい。
03/11/02 02:19
うちのSS5だとどれ位かかるかな…
447:名無しさん@お腹いっぱい。
03/11/02 19:33
>>445
そうかなあ?
たしかに謎な挙動が結構あるが。
そういえば3.4は最適化がちょっと強化されるらしい。
448:名無しさん@お腹いっぱい。
03/11/02 21:54
3.4 はまた C++ ABI が変わるんだとか...
449:名無しさん@お腹いっぱい。
03/11/02 23:13
ヽ(`Д´)ノ
450:名無しさん@お腹いっぱい。
03/11/09 03:43
Solaris で、マルチスレッドのコンパイル&リンクするときって、どうやるの?
451:名無しさん@お腹いっぱい。
03/11/09 07:45
#define _REENTRANT
#include <pthread.h>
#include <thread.h>
Sunのcc: -mt ... -lpthread [必要ならば -lrt]
gcc: -pthread ... -lpthread [必要ならば -lrt]
452:名無しさん@お腹いっぱい。
03/11/09 07:51
gccはoption無しで大丈夫。
453:名無しさん@お腹いっぱい。
03/11/16 09:20
make age
454:オブジェクト指向促進運動
03/11/16 21:12
IT業界にアージャイル開発とデザインパターンを広めよう!
C言語を使ってかなり苦労したので
その苦労を最小限におさえるために
アージャイル開発、デザインパターンを
多くのプログラマに使って欲しいと思うことがある。
一種の挨拶みたいなものだね。
「なるべく挨拶を心がけましょう。」
「なるべき綺麗な字で書きましょう。」
のように
デザインパターンを使うこと、アージャイル開発することが
プログラマの習慣、常識になってほしい。
なんとか、デザインパターン文化、アージャイル開発文化を押し広げられたら・・・。
IT業界の将来はオブジェクト指向とアージャイル開発が握っています!
455:名無しさん@お腹いっぱい。
03/11/17 02:48
オブジェクト指向==デザパタですか。ずいぶん視野の狭いお話で。
456:名無しさん@お腹いっぱい。
03/11/17 10:17
いまだに2.95ですが何か
457:名無しさん@お腹いっぱい。
03/11/17 13:36
>>456
ちんぽむけてますか?
458:名無しさん@お腹いっぱい。
03/12/06 20:10
俺的にさっさとlispのコンパイラ作って欲しい
459:名無しさん@お腹いっぱい。
03/12/07 08:03
Gnu is Not Unix
RMSおよびGNUはUNIX市場をぶち壊すことがその目的です。
LISP,関数型言語の繁栄のために日夜努力されているのです。
Allegroの商圏を踏み荒らすような真似をするはずも
ありません。
460:名無しさん@お腹いっぱい。
03/12/12 23:13
anonymous cvs server落ちてる?
461:名無しさん@お腹いっぱい。
03/12/18 17:56
ここ最近ずっとおかしくない?
462:名無しさん@お腹いっぱい。
03/12/19 07:53
うん、gnu.orgのCVS serverおかしい
463:名無しさん@お腹いっぱい。
03/12/19 18:28
まあg++の作業はちょっと遅れてるっぽいし、
3.3の完成度は高いから、2年ぐらいは
新規のリリースなしでもいいかな~なんて。
464:名無しさん@お腹いっぱい。
04/01/24 00:53
gcc 3.4 って、cc1 とか collect2 が /usr/libexec に移動しているね。
それと /usr/lib/gcc-lib が /usr/lib/gcc になってた。
465:名無しさん@お腹いっぱい。
04/01/24 05:44
WE LOVE GCC!!!
466:名無しさん@お腹いっぱい。
04/01/26 20:47
>>463
そろそろ3.4.0Releaseという噂が聞こえてきましたよ…
467:461
04/01/29 22:22
>>462
できればrsyncだけでなくcvsupとかも動かしてくれるとディスクを
たくさんガリガリやらなくて済むんだけどな。
468:名無しさん@お腹いっぱい。
04/02/08 12:38
このスレの温度
| |- 20
| |
| |- 10
| |
| |- 0
| |
| |- -10 ∧_∧
|┃| (´∀` )
|┃| ( )
. (●) | | |
 ̄ (_(__)
469:名無しさん@お腹いっぱい。
04/02/12 03:05
3.3の完成度は高いのか....(泣)
insn:HI 2040 2044 3203 137 ff01ebc0 (set (reg:DI 31 %i7 [32])
(fix:DI (fix:DF (reg:DF 32 %f0 [647])))) 166 {fix_truncdfdi2} (insn_list 2037 (nil))
(nil))
exif.c:673: internal compiler error: in reload_cse_simplify_operands, at reload1.c:8345
完全なバグ報告を送って下さい。
適切ならばプリプロセス後のソースをつけてください。
<URL:URLリンク(gcc.gnu.org) を見れば方法が書いてあります。
gmake: *** [exif.o] Error 1
bash-2.05$ gcc -v
/opt/gnu/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/specs から spec を読み込み中
コンフィグオプション: ../gcc-3.3.2/configure --prefix=/opt/gnu --enable-languages=c,c++
スレッドモデル: posix
gcc バージョン 3.3.2
470:名無しさん@お腹いっぱい。
04/02/12 14:04
漏れは3つ位出したぞ。sparcじゃないけど。
マイナーなアーキテクチャの宿命だ。
メンテナが頑張ってくれているので消えることは無さそうだが。
471:名無しさん@お腹いっぱい。
04/02/13 09:49
少しぐらいのバギー加減は、ユーザーにコンパイラの内部動作に
関心持ってもらうためには必要だと思われ。とかいってみる。
472:名無しさん@お腹いっぱい。
04/02/15 03:50
>>471
emacs-21.3をleim入れてコンパイルしたら使い物にならないバイナリを吐くのも
啓発のためっすか?(泣)
最初 big-5 あたりでcore吐いていたので configure と Makefile いじれば
なんとかなるかと思って色々やってみたんだけど...
結局 3.2.3 にダウングレードしちゃった。手持ちソースではこちらの方が安定
しているみたいだし。
473:名無しさん@お腹いっぱい。
04/02/15 10:02
>>472
Emacs current つかいなよ。
474:名無しさん@お腹いっぱい。
04/04/16 01:51
いつの間にか 3.3.3 出てるのな。
アーカイブのディレクトリ構成かわってて気づかなかった。
475: ◆ieqrh9GF7Y
04/04/18 11:20
gccの挙動に関しての質問てどこに投げればいいの?
gcc-help ?
因みに質問は以下のコードをコンパイルすると if の部分
がなくなるのはなぜ?ってことなんだけど。
int hoge(signed char ch)
{
if ((unsigned short)ch > 127)
return 0;
return 1;
}
476:名無しさん@お腹いっぱい。
04/04/18 11:33
くだらない質問はここに書き込め!なんでもアリ32
スレリンク(unix板)
エスパーが次の人にアドバイスするスレ
スレリンク(unix板)
477:名無しさん@お腹いっぱい。
04/04/18 12:49
(キミのプラットフォームでは) signed char が取り得る範囲が -128~
127 で、その if は常に false でそ。
478:名無しさん@お腹いっぱい。
04/04/18 13:12
charが1byteではない。もしくは
-128から127っていう範囲でないっていう環境はあるの?
479:名無しさん@お腹いっぱい。
04/04/18 13:43
いまだにOpenBSD上でgcc2.95系使ってる俺って…
480:名無しさん@お腹いっぱい。
04/04/18 14:09
>>477
その説明はおかしい。
unsigned short にキャストしているから、
たとえば ch が -128 なら
(unsigned short の最大の値+1)-128になる。
大抵の環境で、unsigned short の最大の値は 127 より大きいので、
(unsigned short)ch は 127 よりおおきい値になり得る。
>>475
gccの問題のようですね。比較の相手を127でなくて1にしても
同じ症状が出ますから、charの範囲、という問題でもない。
481:名無しさん@お腹いっぱい。
04/04/18 14:54
>>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としての左辺も必ず負の値になるので、この条件文は常に偽。
482:名無しさん@お腹いっぱい。
04/04/18 15:01
>>481
感動した
483:名無しさん@お腹いっぱい。
04/04/18 15:27
>>481
> intとしての左辺も必ず負の値になるので
なりませんよ。
signedをunsignedにしたばあい、unsignedの範囲に入るようにunsignedの最大値+1を
必要な回数だけ加算する。singed char -1をunsigned shortにした場合USHRT_MAXになる。
つぎに、int以下の整数演算はintに格上げされて演算される(右辺がintでなくても格上
げされる)が、値保存で変換されるのでUSHRT_MAXのまま。
unsigned shortがintより範囲が広い場合、両辺がunsigned shortに変換されて比較されるので、
結果は同じ。
484:名無しさん@お腹いっぱい。
04/04/18 15:32
>>481
ちがう。ch=-128 (10000000) で
unsigned short が 16 ビットだとしたら、
左辺は 1111111110000000 になる。これを int (符号付き)
に promote (キャストではない) させる。
int が 32 bit だとしても、unsigned short からの
変換だから、左に 1 は補われない。ゆえに、
00000000000000001111111110000000
になる。
485:名無しさん@お腹いっぱい。
04/04/18 15:46
>>475
if ((unsigned int)ch > 127)
にしる。
どうしても unsigned short で比較したい場合は
右辺も unsigned short の入れ物に入れる。
486:名無しさん@お腹いっぱい。
04/04/18 15:53
unsigned shortにキャストする意味って何?
487:名無しさん@お腹いっぱい。
04/04/18 16:13
プログラムの意図が全くわからんな。
int hoge(signed char ch)
{
return ch >= 0;
}
ってやりたいわけ?
488:名無しさん@お腹いっぱい。
04/04/18 16:20
gcc の中の人も大変だな。
489:名無しさん@お腹いっぱい。
04/04/18 16:45
signed charなんてものを作った奴は腹かっさばいてお詫びしろや。
490:名無しさん@お腹いっぱい。
04/04/18 17:47
符合付き8bit整数はごく普通のデータ型ですよ。
8080とかね。
491:名無しさん@お腹いっぱい。
04/04/18 18:08
つーか最初にchar をungigned なoctet にした奴に栄光あれ、だな。
492:名無しさん@お腹いっぱい。
04/04/18 21:09
規格上はどっちでもいいよ。
signed char, unsigned charと同じ値を持たなくてもいいし。
493: ◆ieqrh9GF7Y
04/04/18 22:49
例はバグを簡略化したものです。
>>484 同じ解釈です。
>>480 gcc の問題とすると報告すべきはどこ? <- 元の質問の意図
127 を 128 にすると、if は残る。逆に gcc -O0 で作っても
if 部分は影も形もなくなるので、Optimizer の仕業ではなく、
C言語仕様解釈の問題だと思ってる。
494:名無しさん@お腹いっぱい。
04/04/18 23:12
URLリンク(gcc.gnu.org)
495:名無しさん@お腹いっぱい。
04/04/19 01:14
このプログラムのほうが問題点が明確になるかな。
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);
}
496:名無しさん@お腹いっぱい。
04/04/19 01:49
些細なことですが return 0; しとこうね。
497:名無しさん@お腹いっぱい。
04/04/19 03:58
precompiled header に魅かれてgcc3.4インストールしたのに
>sorry, unimplemented: had to relocate PCH
って言われた。
どういうことじゃヽ(`Д´)ノ
498:名無しさん@お腹いっぱい。
04/04/19 07:01
>>495-496
C99では明示的にreturn 0;を書く必要はありませんね。
まあ gcc2.95.4 には関係ないことでしょうけど。
499:名無しさん@お腹いっぱい。
04/04/19 07:48
>>478
SHARC/TigerSHARC は char は32bitですよ。
こいつはGCCが標準コンパイラです。
500:名無しさん@お腹いっぱい。
04/04/19 10:12
じゃ、shortも32bitなんだ
501:名無しさん@お腹いっぱい。
04/04/19 10:29
>>495を、
gcc -c -O -dra foo.c すると、"ce1"の後に消える。
gcc -c -O0 -dra foo.c すると、なぜかcompareは残ったままだね。
"mach"の後で消えてるのかな。
502:名無しさん@お腹いっぱい。
04/04/20 00:29
>>500
鋭いですね、そうですよ。
で、sizeof( 整数の型名 ) するとどれも1が返ってきてあせる(笑)
バイトアドレシッシングじゃなくてワードアドレッシングだからこれで正解なんだろうけど
503:名無しさん@お腹いっぱい。
04/04/20 00:53
BCPLかよ!?
504:名無しさん@お腹いっぱい。
04/04/20 17:46
よく分かんないんだけど、つまりCHAR_BITSが32ってこと?
505:名無しさん@お腹いっぱい。
04/04/21 21:18
3.4.0 release sage
506:名無しさん@お腹いっぱい。
04/04/21 21:45
>>505
gccの公式ページよりdistrowatchの方が早くアナウンスしてたのには
驚いた。
まだ使うにはたぶん危険だよね?パフォーマンスはアップしてるのかな?
507:名無しさん@お腹いっぱい。
04/04/21 22:00
危険大好き
508:名無しさん@お腹いっぱい。
04/04/21 23:01
>The cast-as-lvalue extension has been removed for C++ and deprecated for C and Objective-C.
これってANSIかなんかの規格がそうなってるのかな?
ときどき使ってるからちょと痛い
509:名無しさん@お腹いっぱい。
04/04/21 23:04
URLリンク(gcc.gnu.org)
510:名無しさん@お腹いっぱい。
04/04/22 07:37
ミラー逝きわたるっていったいどこを泳いでるの?
全然見当たらないんだけど。
511:名無しさん@お腹いっぱい。
04/04/22 07:51
URLリンク(gcc.gnu.org)ってことだからなぁ
512:名無しさん@お腹いっぱい。
04/04/22 13:19
>>510
一昨日にはもう ftp.iij.ad.jp にあったぞ。
513:名無しさん@お腹いっぱい。
04/04/22 13:54
ringも来てるところはある。
514:名無しさん@お腹いっぱい。
04/04/22 14:32
そんなことより3.3.3はなんで沈没してるんだ
515:名無しさん@お腹いっぱい。
04/04/22 19:05
gccは3.3.3が最高傑作。とか後々までかたられるでしょう。
516:名無しさん@お腹いっぱい。
04/04/22 22:16
>>515
なんだって~(AA略)
517:名無しさん@お腹いっぱい。
04/04/22 23:02
騙られる、だったりして
518:名無しさん@お腹いっぱい。
04/04/23 18:10
>>495の3.4.0だとfは1になってる。
519:名無しさん@お腹いっぱい。
04/04/30 01:16
>>508
3.4.0でのビルドを試して見ましたが、3.3以前でOKだった、幾つかの作法の悪いプログラムは全滅ですね。
丁寧に直せばいいんでしょうけどね…
520:名無しさん@お腹いっぱい。
04/04/30 02:40
3.5からはCもエラーにするらしい。
早めに直しておきませう。
521:名無しさん@お腹いっぱい。
04/04/30 04:43
縛りがきつい方が有難い。
522:名無しさん@お腹いっぱい。
04/04/30 09:00
きついのに血行を妨げないのがプロの縛り方
523:名無しさん@お腹いっぱい。
04/04/30 14:36
nmしたときやg++ -Sしたときに、コンストラクタやデストラクタに
Foo::Foo[in-charge]() のように[なんちゃら]と注釈が入っている場合がありますけど、
これって何ですか?どこかに解説ありませんか?
in-charge, not-in-charge, in-charge deleting などがあるようで...
524:名無しさん@お腹いっぱい。
04/05/02 12:37
ドスドスドスドス
この洗いを作ったのは誰だぁ!!
525:名無しさん@お腹いっぱい。
04/05/02 22:44
雄山?
526:名無しさん@お腹いっぱい。
04/05/03 18:17
だな。
527:名無しさん@お腹いっぱい。
04/05/04 07:54
>>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
528:名無しさん@お腹いっぱい。
04/06/24 19:20
>>522
めちゃワロタ
529:名無しさん@お腹いっぱい。
04/07/01 01:16
gcc3.3.4のチャンゲログが無いですがな
530:名無しさん@お腹いっぱい。
04/07/01 01:33
3.x はバージョン進むのが早いな。
531:名無しさん@お腹いっぱい。
04/08/01 17:52
ICEってかっこいい響きだよな
532:名無しさん@お腹いっぱい。
04/08/01 19:49
ドイツの新幹線もICE
533:名無しさん@お腹いっぱい。
04/08/01 22:35
Inter City Express というのか。
In-Circuit Emurator
Internal Compiler Error
あとは?
534:名無しさん@お腹いっぱい。
04/08/01 22:57
X11のInter-Client Exchange protocolもな
535:名無しさん@お腹いっぱい。
04/08/01 23:21
Integral
Cool
Energy
536:名無しさん@お腹いっぱい。
04/09/09 18:35
Solaris9で、バイナリーのgcc-3.4.1をインスコしたら
ld.so.1: gcc: 重大なエラー: libiconv.so.2: open に失敗しました: ファイルもディレクトリもありません。
強制終了
となってしまいます。
2台やって2台とも同じでした。
iconvのバイナリーってどこで入手できますか?
537:名無しさん@お腹いっぱい。
04/09/09 18:38
>>536
おんなじとこにあるべ
538:名無しさん@お腹いっぱい。
04/09/10 01:24
GCC 3.4.2 age
539:名無しさん@お腹いっぱい。
04/09/22 01:13:44
>>536
Bruno Haible
540:名無しさん@お腹いっぱい。
04/09/25 12:21:56
3.4.1 から 3.4.2 に上げたら生成されるバイナリが
libgcc_s.so.1 をリンクするようになった。
このへん何か変わった?
541:名無しさん@お腹いっぱい。
04/09/25 13:20:19
うん。
542:名無しさん@お腹いっぱい。
04/10/01 08:30:58
GCC 4.0のおいしいところは?
543:名無しさん@お腹いっぱい。
04/10/01 10:08:14
スパイスが効いているところ。
544:名無しさん@お腹いっぱい。
04/10/13 08:31:24
ひどいめにあわすよ
545:名無しさん@お腹いっぱい。
04/10/27 05:40:08
プリコンパイルヘッダの作り方は
gcc /usr/include/**/*.h
でいいんだっけ?
546:名無しさん@お腹いっぱい。
04/10/28 00:19:18
URLリンク(gcc.gnu.org)
547:名無しさん@お腹いっぱい。
04/11/08 14:30:31
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
548:名無しさん@お腹いっぱい。
04/11/09 09:00:50
さてGCC4のリリースも近づきつつある今日この頃。
自分はこまめにビルド・チェックするほどの追っかけじゃなかったけど、GCC3というプロダクトはどのような評価に値する物だったのでしょか。
漏れには、伽藍時代よりテンポ良くリリースされていった分、各Linuxディストロもそれに振り回されてたような印象が。
あとGCC3は、例えば2.95.xや2.7.2.3並みに安定感のあるリリースがなされてたのでしょうか。
よろしければみんなの御意見、どぞ。
549:名無しさん@お腹いっぱい。
04/11/09 09:12:56
g++のC++規格追従上、3.X以外に考えられない。
550:名無しさん@お腹いっぱい。
04/11/09 11:45:48
3.4系はほとんど使われないまま4.0に移行しそうな予感が。
551:名無しさん@お腹いっぱい。
04/11/15 23:45:48
いまだに 2.95.x だよ。もう 4.x の足音が聞こえるような時期なのか。
552:名無しさん@お腹いっぱい。
04/11/27 00:28:14
神ID
スレリンク(northa板:2番)
2:名無しさん []:04/11/27 00:26:40 ID:LIqjWGCC
逃げっと
553:名無しさん@お腹いっぱい。
05/01/27 12:55:20
あげ
554:名無しさん@お腹いっぱい。
05/01/27 15:15:15
gcc-4.0 が出るまでにこのスレを使いきろう…
555:名無しさん@お腹いっぱい。
05/01/27 17:29:04
いつ出るのさ
556:名無しさん@お腹いっぱい。
05/01/27 21:02:08
>>555
予定では近いうちに出るはずだが。
漏れ的にはsh-elfの-m2aが腐っているぽいのでもう少し待ってほしい所ですな。
557:名無しさん@お腹いっぱい。
05/01/27 22:05:24
(´-`).。oO(Unix板にGCCって必要なんだろうか。。。)
558:名無しさん@お腹いっぱい。
05/01/28 18:09:11
>>557
必要ないの?
559:名無しさん@お腹いっぱい。
05/02/04 14:34:09
gcc.gnu.orgがHDDあぼーんしたらしい。
560:名無しさん@お腹いっぱい。
05/02/04 21:28:00
>>559
そうらしいね。
なんかファイルシステムに問題あったらしいよ。
現在、復旧中らしい。
561:名無しさん@お腹いっぱい。
05/02/04 21:31:39
反GPLな奴らのアタック
562:名無しさん@お腹いっぱい。
05/02/05 02:29:14
アナウンスが来てから12時間ほど経ったが…まだ復旧してないのか。
これは長引きそうだな。
まあ急ぐ用事も無いから別に構わんが。
563:名無しさん@お腹いっぱい。
05/02/08 22:08:57
4.0で新しくなる項目だとよ
What will be in 4.0
URLリンク(gcc.gnu.org)
564:名無しさん@お腹いっぱい。
05/04/22 11:05:39
gcc-4.0 が出たらしいですが、スレ違いでしょうか
565:名無しさん@お腹いっぱい。
05/04/22 12:32:04
びみょー
566:名無しさん@お腹いっぱい。
05/04/27 13:50:34
gcc-4.0 で fortran を使うにはどうしたらよいでしょうか?
567:名無しさん@お腹いっぱい。
05/04/27 13:54:41
>>566
スレタイ見ろよ。
スレ違いもいいとこだろが。
ったく。
568:名無しさん@お腹いっぱい。
05/04/27 14:39:07
>>567
>>563
569:名無しさん@お腹いっぱい。
05/04/27 14:42:23
GCC 3.0がリリーナされるのはいつですか?
570:名無しさん@お腹いっぱい。
05/04/28 00:03:01
3と4は別スレじゃなくてもいいんじゃね?
571:名無しさん@お腹いっぱい。
05/04/28 00:29:45
しっかし、このスレ息長すぎー。
4年近く存在するのか。
572:名無しさん@お腹いっぱい。
05/04/28 13:39:53
遅蒔きながら、祝・GCC 4.0リリース。
gcc.gnu.org/gcc-4.0/changes.html とかは当然読んだんだけれど、他のサイトでリリースに対する反応があったらURLコピペぷりーず。
573:名無しさん@お腹いっぱい。
05/04/28 18:29:22
とりあえず /. の記事。
GCC 4.0.0 Released
URLリンク(developers.slashdot.org)
GCC 4.0.0リリース
URLリンク(slashdot.jp)
574:名無しさん@お腹いっぱい。
05/05/03 22:28:44
A Review of GCC 4.0
URLリンク(developers.slashdot.org)
575:名無しさん@お腹いっぱい。
05/05/05 20:16:14
GCC 4.0
A Review for AMD and Intel Processors
URLリンク(www.coyotegulch.com)
576:名無しさん@お腹いっぱい。
05/05/05 20:27:58
しまった。>>574 の元記事だったか。
577:名無しさん@お腹いっぱい。
05/05/14 05:43:22
いまだにgcc-2を使っていますが何か?
578:名無しさん@お腹いっぱい。
05/05/14 09:18:39
>>577
ニートですか?
579:名無しさん@お腹いっぱい。
05/05/14 10:53:11
ABIを変えたら負けだとおもってる。
gcc2.95を使ってる自分は勝ってるとおもいます。
580:名無しさん@お腹いっぱい。
05/05/18 16:11:20
むぅ……。gcc-4.0.0 で rrdtool を作れない。
3.4.3 で作れたから困りゃしないんだけど。Solaris10。
checking if IEEE math works out of the box... no
checking if IEEE math works with the -ieee switch... no
checking if IEEE math works with the -qfloat=nofold switch... no
checking if IEEE math works with the -w -qflttrap=enable:zerodivide... no
checking if IEEE math works with the -mieee switch... no
checking if IEEE math works with the -q float=rndsngl switch... no
checking if IEEE math works with the -OPT:IEEE_NaN_inf=ON switch... no
checking if IEEE math works with the -OPT:IEEE_comparisons=ON switch... no
checking if IEEE math works with fpsetmask(0)... no
checking if IEEE math works with signal(SIGFPE,SIG_IGN)... no
configure: error:
Your Compiler does not do propper IEEE math ... Please find out how to
make IEEE math work with your compiler and let me know (oetiker@ee.ethz.ch).
Check config.log to see what went wrong ...
581:名無しさん@お腹いっぱい。
05/05/18 17:40:26
むぅ……。top-3.5.1 もコケた。gcc-3.4.3 なら問題なし。
4.0 はまだ手を出すべきじゃないのかしらん。
582:名無しさん@お腹いっぱい。
05/05/18 17:48:58
バグレポートしろよ
583:名無しさん@お腹いっぱい。
05/05/18 18:40:57
そうなんだけど、プログラムは専門外だから
ソースが悪いのかコンパイラが悪いのか切り分けできないんだもん。
584:名無しさん@お腹いっぱい。
05/05/18 18:55:07
>>583
切り分けは developer にしてもらえばよいのでは?
URLリンク(news.gmane.org)
585:名無しさん@お腹いっぱい。
05/05/21 11:32:27
gcc 3.4.4出ましたよ。今のところ、これが一番安全パイ?
586:名無しさん@お腹いっぱい。
05/05/22 15:35:41
3.3.5じゃない?
587:名無しさん@お腹いっぱい。
05/05/22 16:21:34
3.3.6じゃなくて?
588:名無しさん@お腹いっぱい。
05/05/22 17:59:47
うちも 3.3.6
589:名無しさん@お腹いっぱい。
05/05/23 13:47:26
2.95.2
590:名無しさん@お腹いっぱい。
05/05/23 17:04:54
2.95.3 じゃなくてーってなんかもう話題ないんか
591:名無しさん@お腹いっぱい。
05/05/25 22:25:32
m68kでi*86のクロスとか、変なことしてる奴いるけ?
592:名無しさん@お腹いっぱい。
05/05/25 23:26:56
いるけ?
593:名無しさん@お腹いっぱい。
05/05/25 23:38:09
URLリンク(www.motenai.net)
594:名無しさん@お腹いっぱい。
05/06/19 19:03:22
アホみたいにメモリ喰うようになったな。
おれがdjgccで1.3Xとか使ってた頃は(以下略・・・
595:名無しさん@お腹いっぱい。
05/06/19 19:49:04
なんだいないのけ.
596:名無しさん@お腹いっぱい。
05/06/19 20:03:25
惰性で見てるよこのスレ。
gcc が出たころは衝撃だったなー。
売りもんのコンパイラよりいい最適化コード吐くし、
gcc のソースコードとかマニュアルとか読んでぞくぞくしてた。
597:名無しさん@お腹いっぱい。
05/06/20 00:19:58
>>596
スパーハッカキタ━(゜∀゜)━( ゜∀)━( ゜)━( )━(゜ )━(∀゜ )━(゜∀゜)━!!!!
598:名無しさん@お腹いっぱい。
05/06/20 06:57:20
gccはANSI Cを使うためだけに入れました。バージョン忘れた。
599:名無しさん@お腹いっぱい。
05/06/20 11:19:17
1.27とか1.36とか?
つーか1000行くまでに4.1出てるし(w
600:名無しさん@お腹いっぱい。
05/06/23 13:08:50
このペースなら5.0も期待できるな
601:名無しさん@お腹いっぱい。
05/07/01 23:33:23
そろそろ4.0.1かな?
602:名無しさん@お腹いっぱい。
05/07/08 23:46:44
URLリンク(gcc.gnu.org)
603:名無しさん@お腹いっぱい。
05/07/08 23:53:41
gccの中の人GJ!
低脳支那人逝ってよし
604:名無しさん@お腹いっぱい。
05/07/08 23:56:55
>>602
支那人が!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
605:名無しさん@お腹いっぱい。
05/07/08 23:57:23
すまん、火病おこしてしまったwwwwwwwwwwww
606:名無しさん@お腹いっぱい。
05/07/15 02:24:14
>>580
カメレスだけど。
CFLAGS=-fno-builtin でいけるよ。
607:名無しさん@お腹いっぱい。
05/07/15 07:16:29
gcc-4.0.1でperl-5.8.7がコンパイル出来ない。
miniperlがPATHどうこう言ってるけど、コンパイラの違いでそんなの影響出るんだろうか?
608:名無しさん@お腹いっぱい。
05/07/15 07:26:27
>>607
どんなエラー?
609:名無しさん@お腹いっぱい。
05/07/15 09:20:30
>>608
少し上から貼ると、こんなかんじ
CCCMD = x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -D_REENTRANT
-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -mtune=k8 -march=k8
-msse3 -mfpmath=sse -ftracer -pipe -fforce-addr -minline-all-stringops
-mno-push-args -maccumulate-outgoing-args -fprefetch-loop-arrays
-fsched-spec-load -funit-at-a-time -Wall
x86_64-pc-linux-gnu-gcc -L/usr/local/lib -o miniperl \
miniperlmain.o opmini.o libperl.a -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
make: [extra.pods] Error 1 (ignored)
./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl configpm.tmp
Can't find configpm on PATH, '.' not in PATH.
make: *** [lib/Config.pm] Error 29
確かに、カレントディレクトリにconfigpmはあるんだけど。
610:名無しさん@お腹いっぱい。
05/07/15 11:26:27
>>609
ふむ、よくわからんけど、config.sh の optim から最適化を外し
て、./Configure -S したあと、gmake するとか、thread 無しでコンパイルし
てみるとか。やってみたらどうかね。
611:名無しさん@お腹いっぱい。
05/07/15 11:30:09
よくわからんけど、メッセージだけ読むと PATH=.:$PATH make
コンパイラの違いは不明
612:607
05/07/15 15:45:30
やっぱり、インタプリタレベルスレッドを使わないと問題ないようです。
とりあえず、しばらくはperlだけ諦めます。
613:名無しさん@お腹いっぱい。
05/07/17 09:20:16
libpcapがgcc-4.0.1だと死にました。実際はtcpdumpから呼び出されて死ぬんだけど。
もう詳しい事はわからん。
614:名無しさん@お腹いっぱい。
05/07/17 09:51:55
>>613
gdb tcpdump core
backtrace
615:613
05/07/17 11:28:40
-O2なら平気で-O3だと駄目みたい。
他に何も指定して無くても。
アーキテクチャはx86_64です。
tcpdumpのexpression指定しなければ落ちません。
バックトレースは深すぎるので、適当に
-O3 -ggdb3でlibpcapを作って
-O0 -ggdb3でtcpdump作った結果。
#0 0x00002aaaaae3125b in icode_to_fcode () from /usr/lib/libpcap.so.0
#1 0x00002aaaaae3159c in icode_to_fcode () from /usr/lib/libpcap.so.0
#2 0x00002aaaaae33efd in bpf_optimize () from /usr/lib/libpcap.so.0
#3 0x00002aaaaae25c07 in pcap_compile () from /usr/lib/libpcap.so.0
#4 0x00000000004500f4 in ?? ()
#5 0x00002aaaaaf67893 in __libc_start_main () from /lib/libc.so.6
616:名無しさん@お腹いっぱい。
05/07/17 11:40:39
-finline-functionsが原因みたい。単体でも落ちた。
617:名無しさん@お腹いっぱい。
05/07/17 12:35:40
x86_64 ってOSによっては安定してなかったり?
618:名無しさん@お腹いっぱい。
05/07/17 17:21:39
どうなんでしょう。私は、gentoo linux使ってます。
4.1-CVSでもprofilebootstrap失敗するし、i386と比べたら安定してないんでしょうね。
619:名無しさん@お腹いっぱい。
05/07/17 23:06:57
>>615
> アーキテクチャはx86_64です。
何故先に言わん(w
シグナル受けたんならどのシグナルかくらい晒さないと…
620:名無しさん@お腹いっぱい。
05/07/18 02:25:22
>>619
シグナル核の忘れてました。SEGVです。
dmesgが埋め尽くされてる。
tcpdump[24386]: segfault at 0000000000000030 rip 00002aaaaae3125b rsp 00007fffff82f1a8 error 4
621:名無しさん@お腹いっぱい。
05/07/18 07:45:07
バウンダリ関係かねえ。
libpcapを-g付きでcompileしてdebugが王道だと思うけど、
-mpreferred-stack-boundary= 辺りを試してみるのもいいかもねえ。
-march=k8にはなっているよね?
622:名無しさん@お腹いっぱい。
05/07/18 10:13:07
Linux 2.6.12.3にしてみたら動作が変わった…。
-O -finline-funcionsはokになりました。
-O2 -finline-functionsだと落ちます。
-O2はonになるフラグが多すぎて、ちょっと調べきれないです。
-finline-limitで11までに制限すればok。12以上で落ちます。
-march=k8指定、-mpreferred-stack-boundaryは4,8,12はどれも解決にはなりませんでした。
なんか、デバッグ情報が出るようになったので貼ってみます。libpcap-0.9.3です。
#0 find_levels_r (b=0x0) at optimize.c:222
#1 0x00002aaaaae2df2b in find_levels_r (b=0x6fe7b0) at optimize.c:230
#2 0x00002aaaaae2df1f in find_levels_r (b=0x6fdbc8) at optimize.c:229
#3 0x00002aaaaae2ec40 in opt_loop (root=0x6fdbc8, do_stmts=0)
at optimize.c:251
#4 0x00002aaaaae303fc in bpf_optimize (rootp=0x2aaaaaf463e0)
at optimize.c:1740
#5 0x00002aaaaae2592a in pcap_compile (p=0x6fd2b0, program=0x7fffffaf1260,
buf=0x6fd120 "port 80", optimize=1, mask=16777215) at gencode.c:386
#6 0x00000000004500f4 in ?? ()
#7 0x00002aaaaaf63893 in __libc_start_main () from /lib/libc.so.6
gcc-4.0.1で-fstack-check, 3.4.4で-fstack-protector使ってみたけど何も出ませんでした。
623:名無しさん@お腹いっぱい。
05/07/18 10:38:15
ifのjumpかな?
-Osだとどうだろう。
-falign-functions -falign-jumps -falign-loops -falign-labels
-freorder-blocks -fprefetch-loop-arrays がオフ。
624:名無しさん@お腹いっぱい。
05/07/18 11:19:08
-fno-strict-aliasing
をつけるとどうなる?
URLリンク(makimo.to)
URLリンク(slashdot.jp)
625:名無しさん@お腹いっぱい。
05/07/18 11:35:46
>>623
-Osはだめでした。
>>624
いけました。ばっちりです。
いろいろ問題ありそうですけど、今のところこれ以外当たってないんですよね。
portageつかってるから、まずいのがわかっている場合は回避してる可能性がありますが。
626:名無しさん@お腹いっぱい。
05/09/18 16:40:56
gcc4は-O1でも-fprefetch-loop-arrays効くのかな
627:名無しさん@お腹いっぱい。
05/09/29 09:12:48
4.0.2が出ました。
628:名無しさん@お腹いっぱい。
05/09/29 21:48:28
3.3や3.4より早いバイナリを作れるようになるのはいつですか?
629:名無しさん@お腹いっぱい。
05/09/30 00:18:55
4.3や4.4になるまでお待ちください。
630:名無しさん@お腹いっぱい。
05/09/30 07:45:55
つーか3.3, 3.4でいいじゃん。
4系はerror recoveryちょっと賢くなった気がするが。
631:名無しさん@お腹いっぱい。
05/09/30 14:43:19
GCCは3.2.xのころが一番早くて安定しててよかった。。。
632:名無しさん@お腹いっぱい。
05/09/30 14:44:13
631です。漢字間違えた。
「早」 → 「速」
633:名無しさん@お腹いっぱい。
05/10/24 01:07:39
でも4.xのcc1plusは明らかに3.xのより速いよ。
634:名無しさん@お腹いっぱい。
05/10/24 06:01:42
4.1のcc1plusは速い。
吐くコードは知らん。
635:名無しさん@お腹いっぱい。
05/11/28 17:33:48
gcc-2.9では通るのにgcc-3.3では voidのとこでエラーになるんですが何故?
prase error before `!' token
636:名無しさん@お腹いっぱい。
05/11/28 17:46:07
コードさらせYO
637:名無しさん@お腹いっぱい。
05/11/29 14:54:40
なんでだお!
638:名無しさん@お腹いっぱい。
05/11/29 16:47:57
それだけの情報で、どう指摘するんだお!
639:名無しさん@お腹いっぱい。
05/11/29 19:12:21
先生! 問題を明確にしない限り、答える事もできないと思います!
\
 ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧∩
( ・∀・)/
_ / / /
\⊂ノ ̄ ̄ ̄ ̄\
||\ \
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
640:名無しさん@お腹いっぱい。
05/11/29 19:15:13
(・3・) 先生は出張中です。
641:名無しさん@お腹いっぱい。
05/12/02 14:04:25
3.4.5 が出ました。
642:名無しさん@お腹いっぱい。
05/12/06 23:45:35
4.2まだー?
643:名無しさん@お腹いっぱい。
05/12/12 19:33:39
5.0はどうですか
644:名無しさん@お腹いっぱい。
05/12/21 10:16:41
>>635
そのgccエラーメッセージおかしいよ
野良ビルドしたんじゃないの?
praseってスペルミスありえない
645:名無しさん@お腹いっぱい。
05/12/21 14:39:52
エラーメッセージはコピペが基本だよなあ
646:名無しさん@お腹いっぱい。
05/12/30 15:49:37
ところでアンインストールはどうやったらいいの?
make uninstallだと弾かれる。
647:名無しさん@お腹いっぱい。
05/12/30 16:06:53
アプリのアンインストールってどうやるの?
スレリンク(unix板)
648:名無しさん@お腹いっぱい。
06/02/25 21:54:59
4.1って安定版?
649:名無しさん@お腹いっぱい。
06/02/25 22:13:30
まだスナップショットしか出てないと思うけど。
私はLinux on amd64でメインに使ってます。
650:名無しさん@お腹いっぱい。
06/02/26 00:37:13
>649
完成したら4.2として公開されるのでしょうか?
651:名無しさん@お腹いっぱい。
06/02/26 02:40:45
4.2ってスナップ出てるんあないっけ?
652:名無しさん@お腹いっぱい。
06/02/26 22:37:36
>>650
4.1が完成したら4.1として公開されますよ。
Linuxみたいに「このバージョンは安定版、このバージョンは実験版」
という区別はありません。
653:648
06/02/26 23:58:48
どうもありがとうございました
654:名無しさん@お腹いっぱい。
06/02/27 03:06:18
そうはいってもGCCってmajor > minorなうちは実験版という評価がもっぱらのような
655:名無しさん@お腹いっぱい。
06/02/27 18:26:02
2.5.8とか
656:名無しさん@お腹いっぱい。
06/02/27 18:48:03
gcc-1.4.2 はいいデキでしたよ。
657:名無しさん@お腹いっぱい。
06/02/28 12:40:22
>>654
評価っていうかジンクスでしょ
658:名無しさん@お腹いっぱい。
06/03/01 15:25:28
gcc-4.1.0 キタ━━━(゚∀゚)━━━ !!!!!
659:名無しさん@お腹いっぱい。
06/03/02 04:56:28
maji?
660:名無しさん@お腹いっぱい。
06/03/02 06:29:44
>>659
URLリンク(gcc.gnu.org)
> February 28, 2006
> GCC 4.1.0 has been released.
URLリンク(gcc.gnu.org)
661:名無しさん@お腹いっぱい。
06/03/02 21:52:08
4.0.2 までは素直にbuild通ってたのに4.1.0で落ちる orz
Solarisダメポ
662:名無しさん@お腹いっぱい。
06/03/03 12:29:17
Solarisはgccのバージョンが上がる最初の版は大抵そのままではうまくいかないw
663:名無しさん@お腹いっぱい。
06/03/04 18:54:23
New GCC Heavy on Optimization
URLリンク(www.internetnews.com)
664:名無しさん@お腹いっぱい。
06/03/05 11:34:19
>>663 kwsk
665:!= 633
06/03/05 15:06:27
>>664
十分に詳しいと思うが。もっと必要ならWikiなりML Archiveなり漁るが良し。
666:名無しさん@お腹いっぱい。
06/03/05 17:30:07
「今度こそ、GCC 4.1正式リリース」
URLリンク(slashdot.jp)
667:名無しさん@お腹いっぱい。
06/03/11 16:00:02
4.1使った人、どうよ?
668:名無しさん@お腹いっぱい。
06/03/12 15:01:42
.0のバージョンの割には3.4.0や4.0.0の時よりいい
669:名無しさん@お腹いっぱい。
06/03/13 19:49:58
GCC 4.0.3
URLリンク(kerneltrap.org)
670:名無しさん@お腹いっぱい。
06/03/14 10:19:50
sparc Solaris9 でlibtool と texinfo 入れて --disable-libgcj したらなんとか
gcc4.1.0コンパイルできた・・・
-m64 も使える。さて、何からやるか。
671:名無しさん@お腹いっぱい。
06/03/15 17:53:04
ちょっとコンパイルしてみたけど、以前のバージョンなら通ってたものが
エラーになるね。
error: static declaration of 'XXXXX' follows non-static declaration
とか、、、該当行のstatic外したら通ったが。
672:名無しさん@お腹いっぱい。
06/03/19 02:39:52
4系列になってから、全体的にCの構文に厳しくなったらしい。
muttなんかも構文警告が構文エラーになって、ビルドできなかった事がある。
673:名無しさん@お腹いっぱい。
06/03/19 22:33:39
3も2よりだいぶ厳しくなったといわれてたな。
674:名無しさん@お腹いっぱい。
06/03/20 12:26:36
LLVMまだ?
675:名無しさん@お腹いっぱい。
06/03/25 16:36:31
gcc4.1.0でgcc4.1.0を何回もコンパイルすると不定期にアセンブラが.identが見付からないよと言う壊れたコンパイラになる
676:名無しさん@お腹いっぱい。
06/05/26 15:37:24
gcc4.1.1きた?
677:名無しさん@お腹いっぱい。
06/05/26 17:14:25
>>676
ktkr
URLリンク(gcc.gnu.org)
678:名無しさん@お腹いっぱい。
06/05/30 15:35:05
gcc-4.1.1 Solaris玉砕 T_T);
679:名無しさん@お腹いっぱい。
06/05/30 20:31:56
GCCもそうだけど、GNUのツールってだいぶLinux-centricに
なってきて、広い影響力は以前より落ちている気がするね。
680:名無しさん@お腹いっぱい。
06/05/31 15:24:52
NetBSD-currentなんかも、ずっと3.3.3のまんまだもんな。
*BSDにおいてはGNU関連ツールは使わざるを得ないから使ってると
誰かが雑誌で言ってたな。
681:名無しさん@お腹いっぱい。
06/05/31 20:49:12
NetBSDは只今GCC4に切り替え中。
確かに NetBSD ぐらい CPU に対応してると、それ全部で使えるコンパイラを
新たに用意するのは難しいでしょうね。
GCCでもマイナーなCPUは切り捨てそうですけど。
682:名無しさん@お腹いっぱい。
06/06/27 20:26:29
OpenCC書いてくれTheo
683:名無しさん@お腹いっぱい。
06/09/03 11:45:37
gcc 大きくなりすぎ
もっと軽い free な cc ないんだっけ?
684:名無しさん@お腹いっぱい。
06/09/03 12:14:51
お前には関係ない。
685:名無しさん@お腹いっぱい。
06/09/03 12:17:23
ビーのコアチームとやらで作ればいいじゃんwwwwwwwww
686:名無しさん@お腹いっぱい。
06/09/04 00:21:07
>>683
TenDRAを入れたいんだが未手付
URLリンク(www.tendra.org)
URLリンク(www.ten15.org)
後lccというのがある
URLリンク(www.cs.princeton.edu)
687:名無しさん@お腹いっぱい。
06/09/04 02:43:19
吐くコードが小さくて速けりゃgccが大きくたって問題はなかろうに。
軽い処理系だと十分なoptimizeができるとは思えんが。
688:名無しさん@お腹いっぱい。
06/09/04 13:12:28
gccもそのうちXみたいにモジュール化するんだろうか
689:名無しさん@お腹いっぱい。
06/09/04 14:12:08
TCC: Tiny C Compiler
URLリンク(fabrice.bellard.free.fr)
>>687
小さい軽い処理系に最適化なんて求めないよ
690:名無しさん@お腹いっぱい。
06/09/04 15:46:35
サイズに関する最適化は欲しい
691:名無しさん@お腹いっぱい。
06/09/04 18:40:32
熟女系の作品だとサイズが縮みます。
692:名無しさん@お腹いっぱい。
06/09/04 20:52:37
膨らむ奴もいる
693:名無しさん@お腹いっぱい。
07/10/12 01:45:29
保守
694:名無しさん@お腹いっぱい。
07/10/18 17:53:02
>>681
gccの問題というより、
NetBSDの方がバージョン移行のCPUテスター不足なんじゃないの?
Linuxはバージョン上げるのに成功しているし。
マイナーだと厳しいよね。
695:名無しさん@お腹いっぱい。
07/11/04 14:20:56
>>694
Linuxはとりあえずバージョン上げて、何かあったら大騒ぎするというやり方。
696:名無しさん@お腹いっぱい。
08/02/16 21:02:53
「Linuxは」というほどディストリでgccの扱い共通してない。
カーネルがgcc依存ってのくらい。
697:名無しさん@お腹いっぱい。
08/06/06 17:54:46
Fedora Core辺りは、
> とりあえずバージョン上げて、何かあったら大騒ぎする
のが仕事だしね。
698:名無しさん@お腹いっぱい。
08/06/24 22:58:25
ほう、ついにGCC3.0が出たのか・・・時代の最先端を行く俺には欠かせないツールになるよ
699:名無しさん@お腹いっぱい。
08/08/11 12:31:36
ところで、昔のC言語ではダメだったのに、今のCコンパイラでは
double sqrt(double); に
sqrt(2) とか引数に整数などdouble でないものを書いてもちゃんと
コンパイルして2の平方根の近似値を返すのはどうして?
プロトタイプ宣言を元にして、引数の型の自動変換が行われるの?
それってC++の仕様じゃないかな?
700:名無しさん@お腹いっぱい。
08/08/11 12:46:07
タイムトラベラーの方ですか?
C89以降、関数のプロトタイプ宣言(とそれに基いた昇格)はCでも当たり前の事ですが。
701:名無しさん@お腹いっぱい。
08/08/11 16:11:49
ついでに質問しちゃおう。xを変数とするとき、
x = x++;
という代入文は、結果がどうなるか不定だと思うんだけども、
そこのあたりどうなっているでしょうか?
702:名無しさん@お腹いっぱい。
08/08/11 16:13:33
ム板で聞いた方がよくね
703:名無しさん@お腹いっぱい。
08/08/11 16:21:06
>>701
おいおい、よく見てみろ。(例が悪いよ)
= と ++ の動作が、どちらが先だとしても x の値は +1 されるだろ。
よって、結果がどうなるか不定ではない。
704:名無しさん@お腹いっぱい。
08/08/11 16:22:53
>>701
つ シーケンスポイント
規格持っているならそこを読んで。
ないならググッて。
705:名無しさん@お腹いっぱい。
08/08/11 16:28:20
せっかく2.95を超える世界制覇バージョンとなることが約束された3.0がリリースされたのに
他に言うことはないのか?
706:名無しさん@お腹いっぱい。
08/08/11 16:36:02
ないな。
707:名無しさん@お腹いっぱい。
08/08/11 17:54:18
「シーケンスポイントに関する規約」に適合していないプログラムは
実行結果が保証されないことが分かった。
さて、そうなると、規約を破っているソースコードに対しては、
それを警告してくれるコンパイラの機能が望まれる。
GCCではそのあたりがどうなっているのだろうか?
708:名無しさん@お腹いっぱい。
08/08/11 18:27:46
>>707
試せよ。
709:名無しさん@お腹いっぱい。
08/08/11 22:29:33
もうこの板のスレ2年過ぎたら強制dat落ちにしようぜ・・・
710:名無しさん@お腹いっぱい。
08/08/12 01:20:16
5年先まで見通してスレ立てればいいだけの話
711:名無しさん@お腹いっぱい。
08/08/12 11:18:38
投票所を作って、反対意見が出ないようなら削除依頼とかな
依頼してもなかなか削除されねーけど
712:名無しさん@お腹いっぱい。
08/08/14 10:05:42
>>701
なつかしいな、それ。KYKだっけ?
713:名無しさん@お腹いっぱい。
08/08/14 21:37:52
>>703
それは冗談で言っているのか。
714:名無しさん@お腹いっぱい。
08/08/16 04:42:49
ぐぐった。
URLリンク(www.atmarkit.co.jp)
715:名無しさん@お腹いっぱい。
08/08/18 03:16:26
>>712
Yじゃねえ。
Nだ。
716:名無しさん@お腹いっぱい。
08/08/18 05:34:08
knkなつかしい.
URLリンク(pc.2ch.net)
URLリンク(pc.2ch.net)
URLリンク(home.jp.freebsd.org)
URLリンク(web.archive.org)
717:名無しさん@お腹いっぱい。
08/08/25 03:29:13
このしらいさんという方も勘違いしてますね。
718:名無しさん@お腹いっぱい。
08/10/05 05:53:48 BE:1345128858-2BP(0)
OpenBSDは未だに、2.95ですね。
719:名無しさん@お腹いっぱい。
09/01/11 15:34:03
gccで関数プロトタイプ宣言を自動的に生成する機能があると聞いたのですが、
ぐぐってみてもそのような機能は見つかりませんでした。
もし本当にそういう機能があれば、どなたか教えていただけないでしょうか。
またgccに限らず、*.cから*.hを自動的に生成するツールについておすすめのものがあれば教えてください。
720:名無しさん@お腹いっぱい。
09/01/11 19:31:36
GCC3スレにようこそw
URLリンク(www.kouno.jp)
> 関数プロトタイプの自動生成ソフトはいくつか存在する。多くはlint に手を
> 入れたものになっている。CPROTOというプログラムが1992年3 月に
> comp.sources.miscにポストされた。他にもcextractというツー ルが存在する。
> コンパイラのベンダーの多くは単純なユーティリティー を用意している。
> 質問18.16も参照のこと。(古いコード用にプロトタ イプを生成するときは"狭い"
> 引数に注意すること。質問11.3も参照の こと。)
gccにそういう機能ってあったかなぁ
721:名無しさん@お腹いっぱい。
11/06/11 00:12:40.83
class A { public: A(){} };
class B : public A
{
B() {A::A();}
};
↑こういうコードで、g++-4.1.2だとエラーなし、
g++-4.6.0だと cannot call constructor 'B::A' directly
というエラーが出ます。どう修正するのが適切ですか?
722:名無しさん@お腹いっぱい。
11/06/11 07:25:12.63
>>721
class A { public: A(){} };
class B : public A
{
B() {}
};
で、暗黙的にAのコンストラクタが呼ばれる。
もしくは、渡す引数があれば、
class A { public: A(int arg){} };
class B : public A
{
B() : A(123) {}
};
とする。
723:名無しさん@お腹いっぱい。
11/06/11 08:59:42.53
>>722
ありがとうございます。それでやってみます。
ところで、逆に Bをコンストラクトする時に、
暗黙にAのコンストラクタを呼ばないようにするにはどうしたらいいですか?
724:名無しさん@お腹いっぱい。
11/06/11 09:04:05.21
>>723
理屈上おかしいし、それは多分できない。
実装上は、Aに何もしないコンストラクタを用意すれば、呼ばれてないのと同じことにはなるかもしれない。
725:名無しさん@お腹いっぱい。
11/06/11 09:20:46.87
>>724
できないんですね。わかりました
ところで、最初の >>721 の質問のように
わざわざ継承元のコンストラクタを呼んでるようなコードが
複数のソフトで見つかるんですが
これ、何か意味があったのではないのでしょうか?
それとも、こういう誤解が広範囲に広まっていたのでしょうか?
726:名無しさん@お腹いっぱい。
11/06/11 12:08:55.06
>>725
実はC++に詳しくないので、そういう書き方があったのは初めて知った。
今の言語規格にはないやり方で、わざわざ利用しているとしたら、理由はわからない。
ただ、今の言語規格ではAのコンストラクタは必ずBのコンストラクタに先立って実行されるので、
継承元のコンストラクタを呼んでるようなコードが、Bのクラスの一番初めの実行文でない場合、
処理の実行に影響がないかどうかは気をつけないといけないと思う。
727:名無しさん@お腹いっぱい。
11/06/11 17:30:51.28
>>725
コンストラクタを呼んでるつもりで、実は一時オブジェクトを作って捨ててるだけ、ってのはたまに見る。
公開されてるソフトにそんなの入ってるとは思わないけどな。
ソフト名を晒してくれると面白いかもしれない。
728:名無しさん@お腹いっぱい。
11/06/11 17:36:41.18
初期化子は結構早い段階で規格に入っているしなあ。
"annotated"の頃には入っていたんじゃない?
729:名無しさん@お腹いっぱい。
11/06/11 17:59:56.17
>>727
kdeaddons-3.5.10の中の kate/tabbarextension/plugin_katetabbarextension.h
というファイルでそういう箇所があります。(本家で公開されてるソースです)
gccのバージョンを上げるとエラーになるため、問題が発覚します。