[過去ログ]
C言語なら俺に聞け 163 (1002レス)
C言語なら俺に聞け 163 http://mevius.5ch.net/test/read.cgi/tech/1721137434/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
632: 警備員[Lv.5][新芽] (ワッチョイ 8713-tGgj) [sage] 2025/02/11(火) 01:04:37.69 ID:nkHTE6y60 >>627がいうことがそれなのか 未定義だと アセンブラ脳だと同じとみなしてくれてよさそうだけど、難しいね… http://mevius.5ch.net/test/read.cgi/tech/1721137434/632
633: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/11(火) 08:30:33.47 ID:YWsMUNTvp 型変換すればOK http://mevius.5ch.net/test/read.cgi/tech/1721137434/633
634: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/11(火) 11:05:12.56 ID:0+q77CUl0 >>632 強調しておくけど未定義は何が起こってもよい。 この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。) 低レイヤから入った人は未定義をナメてることが結構あるとは思う。 どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。 http://mevius.5ch.net/test/read
.cgi/tech/1721137434/634
635: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/11(火) 11:22:08.87 ID:kmJe274sp Cなんてポインターは全部void*だろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/635
636: デフォルトの名無しさん (ワッチョイ 1e63-euVe) [sage] 2025/02/11(火) 11:37:41.91 ID:7Jzkf7ZG0 ご無体な http://mevius.5ch.net/test/read.cgi/tech/1721137434/636
637: 警備員[Lv.6][新芽] (ワッチョイ 46ac-tGgj) [sage] 2025/02/11(火) 12:35:30.87 ID:m4FoXgHJ0 >>626 は僕のgccのパージョンだと -O2 ありだと "not equal" 最適化なしだと "equal" -S つけて .s をみると、-O2 ありのときポインタの比較すらせず単純に puts("not equal"); とするコードを出力していた "equal" のリテラルすらコードにはない 降参 http://mevius.5ch.net/test/read.cgi/tech/1721137434/637
638: デフォルトの名無しさん (ワッチョイ 4606-6Hi7) [sage] 2025/02/11(火) 13:33:00.20 ID:jMpjlVqA0 strict aliasingのルールがなぜあるか理解してたらある程度予想つくだろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/638
639: デフォルトの名無しさん (ワッチョイ de76-/Fy3) [] 2025/02/11(火) 14:32:56.35 ID:VhWouMxY0 そもそも 8Byteや4Byte変数のポインタが例えば奇数の数値が許されるのかとか http://mevius.5ch.net/test/read.cgi/tech/1721137434/639
640: デフォルトの名無しさん (ワッチョイ 1e63-euVe) [sage] 2025/02/11(火) 14:40:28.60 ID:7Jzkf7ZG0 文字列を指すポインタなら、一文字ずつインクリメント出来ないと困るよね http://mevius.5ch.net/test/read.cgi/tech/1721137434/640
641: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/11(火) 14:52:06.30 ID:+ybAiMfGp >>639 CPUによる http://mevius.5ch.net/test/read.cgi/tech/1721137434/641
642: デフォルトの名無しさん (ワッチョイ 4606-6Hi7) [sage] 2025/02/11(火) 15:43:23.98 ID:jMpjlVqA0 >>639 それどこへのレス? http://mevius.5ch.net/test/read.cgi/tech/1721137434/642
643: デフォルトの名無しさん (ラクッペペ MMc6-2Ktg) [sage] 2025/02/11(火) 16:44:48.97 ID:ZUCQJ4rmM >>640 いつ困るんだ? http://mevius.5ch.net/test/read.cgi/tech/1721137434/643
644: 警備員[Lv.3][新芽] (ワッチョイ 1ac9-tGgj) [sage] 2025/02/11(火) 16:59:49.92 ID:MJELNENN0 >>627は 最適化されると出力されるコードを推測することは無理だ、ということね http://mevius.5ch.net/test/read.cgi/tech/1721137434/644
645: デフォルトの名無しさん (ワッチョイ 4606-6Hi7) [sage] 2025/02/11(火) 17:19:32.60 ID:jMpjlVqA0 無理はいいすぎ やったことないやつがしったかすんな http://mevius.5ch.net/test/read.cgi/tech/1721137434/645
646: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/11(火) 17:20:33.85 ID:0gFNLz1yp ARM系はほんと無理 http://mevius.5ch.net/test/read.cgi/tech/1721137434/646
647: デフォルトの名無しさん (ワッチョイ 5302-aFRq) [sage] 2025/02/11(火) 18:37:22.58 ID:2gjYX+K80 貴方みたいな人はほんと無理 とか言われたら傷ついちゃう http://mevius.5ch.net/test/read.cgi/tech/1721137434/647
648: デフォルトの名無しさん (ワッチョイ 7f1b-hc6T) [sage] 2025/02/11(火) 21:27:22.00 ID:JzAdQ4dR0 とりあえず読むべし 旧石器時代のポインタをご利用の皆様へ 〜provenance入門〜 https://qiita.com/__pandaman64__/items/1788a90ae5be79cc908b http://mevius.5ch.net/test/read.cgi/tech/1721137434/648
649: 警備員[Lv.5][新芽] (ワッチョイ 465f-tGgj) [sage] 2025/02/11(火) 21:52:04.81 ID:m4FoXgHJ0 >>648 thx! http://mevius.5ch.net/test/read.cgi/tech/1721137434/649
650: デフォルトの名無しさん (ワッチョイ de76-/Fy3) [sage] 2025/02/11(火) 21:58:43.75 ID:VhWouMxY0 こんなの分割コンパイルしたら分からないし ライブラリならなおさら 実行時にどのオブジェクト由来なんて情報持っておけるのか? int func(int *ip, int *iq) { if (ip == iq) { } else { } } http://mevius.5ch.net/test/read.cgi/tech/1721137434/650
651: デフォルトの名無しさん (ワッチョイ 46a9-6Hi7) [sage] 2025/02/11(火) 22:39:07.83 ID:jMpjlVqA0 コンパイル時に決まってんじゃん http://mevius.5ch.net/test/read.cgi/tech/1721137434/651
652: デフォルトの名無しさん (スップ Sd4a-26Jk) [] 2025/02/11(火) 23:02:33.92 ID:DgpMDse2d このコテハンの人いつもこんなだよね まともに出来るのが規格のコピペみたいな事だけで、それ以外だとすぐとんちんかんな事言い出して突っ込まれてる http://mevius.5ch.net/test/read.cgi/tech/1721137434/652
653: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/11(火) 23:17:19.29 ID:0+q77CUl0 >>650 わかる範囲でやるってだけ。 わからないところは保守的なコードを生成する。 ただ、今は LTO があるのでわかる範囲がだいぶん広い。 わからないからこそプログラマは未定義なことをしないと仮定した最適化をする (未定義を踏んでたらむちゃくちゃになる) という場合もある。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/653
654: デフォルトの名無しさん (ワッチョイ d301-XAIF) [sage] 2025/02/12(水) 10:25:19.84 ID:WVzDbo940 >>648 ポインタpとqの値が同じにならないんだけど… http://mevius.5ch.net/test/read.cgi/tech/1721137434/654
655: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/12(水) 10:28:46.36 ID:p1VJlK94p Cに余計なもん付けたらいにしえのLinux由来のコードが通らなくなるだろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/655
656: デフォルトの名無しさん (ワッチョイ 6a4d-WFrT) [] 2025/02/12(水) 11:20:54.68 ID:OojhOsKe0 未定義の動作がどういうことなのかよく分かっていない人がいるみたいなので補足しておく >>628 未定義の動作を引き起こすプログラムを提示しても結果が分からないし毎回違う可能性もある点でこれだと何も示せてない きつい言い方かもしれないが注意喚起になっていない >>634の2行目を見るとコードの動き方に対しての認識として不定の動作と未定義の動作を混同して勘違いしてるかも知れないね http://mevius.5ch.net/test/read.cgi/tech/172
1137434/656
657: 627 (ワッチョイ 6a4d-WFrT) [] 2025/02/12(水) 11:21:58.36 ID:OojhOsKe0 >>631 未定義の動作なので2行目から7行目のような事が起きるかどうかは分からない 仮に未定義の動作がなかったとしても行目を自明のように仮定することは出来ない アーキテクチャが色々ある中そういう処理系もあればそうでない処理系もあるしCでは何も規定してない スタックの仕組みがないものもあればポインタをそもそも数値や番地で扱わないアーキテクチャもある 後段も同様 http://mevius.5ch.net/test/read.cgi/tech/1721137434/657
658: 627 (ワッチョイ 6a4d-WFrT) [] 2025/02/12(水) 11:22:39.59 ID:OojhOsKe0 >>644 コンパイラの動作に対して必要条件が何も設定されない状態になるという話で最適化は全く関係ない ちなみに今回の話はK&Rの頃からあるルールなので>>648とはちょっと違う ただ内容は大体同じでポインタはオブジェクトを指してるもので、その内部形式や扱い方はユーザーが知る必要はない http://mevius.5ch.net/test/read.cgi/tech/1721137434/658
659: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF) [sage] 2025/02/12(水) 11:47:09.26 ID:cXwd7RB80 >>658 言語仕様上で未定義動作とされている状況が実際の機械の上でどう動作するか (その動作は想像できない) という文脈でヤバさを伝えるためになるべく想像外な結果を生む実例を出そうとしているので最適化は関係ある。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/659
660: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/12(水) 11:50:24.83 ID:XyTZkBHop 最適化しないと無駄なコードや無意味なコードも忠実に出力されるからなぁ http://mevius.5ch.net/test/read.cgi/tech/1721137434/660
661: デフォルトの名無しさん (ワッチョイ 4618-6Hi7) [sage] 2025/02/12(水) 12:49:03.57 ID:J/UI6pYQ0 >>658 未定義だから不明を連呼されても大して参考にならんわけで なぜ現実のgccではあのような結果になるのか理由を説明できないのか? わかってないようだけど最適化は大いに関係してるぞ http://mevius.5ch.net/test/read.cgi/tech/1721137434/661
662: デフォルトの名無しさん (ワッチョイ de76-/Fy3) [sage] 2025/02/12(水) 13:26:30.21 ID:7GgOweZ60 えーと未定義や環境依存を使ったりとかは Cおよびコンピュータの理解が不十分な 質の劣るプログラマが存在するからでしょうに そういう人達に重要プログラムを書かせる責任問題でもある http://mevius.5ch.net/test/read.cgi/tech/1721137434/662
663: デフォルトの名無しさん (ワッチョイ 5302-aFRq) [sage] 2025/02/12(水) 15:09:37.68 ID:+Pz/j8Me0 相手に過大に説明を要求して、自分は分かろうとしない者は嫌われちゃうよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/663
664: デフォルトの名無しさん (ワッチョイ 1e63-euVe) [sage] 2025/02/12(水) 15:17:35.67 ID:iId2MJ1V0 gccのフォーラムで質問出してみたら? 参考にできる回答が得られるかも知れないよ http://mevius.5ch.net/test/read.cgi/tech/1721137434/664
665: デフォルトの名無しさん (ワッチョイ d301-XAIF) [sage] 2025/02/12(水) 15:52:05.07 ID:WVzDbo940 >ポインタにはprovenanceという,どのオブジェクト由来かの情報が含まれています ↑まずこれがおかしい http://mevius.5ch.net/test/read.cgi/tech/1721137434/665
666: デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl) [sage] 2025/02/12(水) 16:26:28.23 ID:I956D6cKp ランタイムじゃなくてコンパイル時の静的なルールだろうね http://mevius.5ch.net/test/read.cgi/tech/1721137434/666
667: デフォルトの名無しさん (ワッチョイ ea07-XAIF) [sage] 2025/02/12(水) 17:12:16.79 ID:1bCkYFVx0 投資家はRustを信頼するって言ってるんだから、Rustとおんなじようにすればいいだけ 俺はC/C++派なので、どんどんRustの実績をぶんどってくるべきって思ってる http://mevius.5ch.net/test/read.cgi/tech/1721137434/667
668: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/12(水) 17:47:13.48 ID:cXwd7RB80 >>667 Rust のようにやるなら Rust のほうが巧くやれる。 当たり前だろ。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/668
669: 警備員[Lv.1][新芽] (ワッチョイ aba3-tGgj) [sage] 2025/02/13(木) 00:32:14.00 ID:rym7RjTu0 移植性が求められることばかりでもないし、最適化などのオプションも頻繁に取ったりつけたりしないし、思い通りに動かなければアセンブルリストみたりするけど、コンパイラが出力するコードが予想通りかなんて観点はないし、実践的ではないけど、人を小馬鹿にしたりしなければ勉強になって面白い話なのに http://mevius.5ch.net/test/read.cgi/tech/1721137434/669
670: 警備員[Lv.1][新芽] (ワッチョイ aba3-tGgj) [sage] 2025/02/13(木) 00:34:29.37 ID:rym7RjTu0 実践的でない、はちょっと違うか http://mevius.5ch.net/test/read.cgi/tech/1721137434/670
671: デフォルトの名無しさん (ワッチョイ 8655-u07z) [] 2025/02/15(土) 13:31:47.16 ID:vKfoke/00 Arduino (ESP32)で文字列変換をしたいです。 tの文字列をtm structに変換したいんですが,タイムゾーンのオフセット部分の+9:00の扱いが分かりません。 %Zはタイムゾーンのオフセットを分を指定する場合で、%zだとUTCなどタイムゾーン名を指定する場合に使うみたいでした。 どうやるんでしょうか? tps://pastebin.com/Jcyj8BG5 http://mevius.5ch.net/test/read.cgi/tech/1721137434/671
672: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF) [sage] 2025/02/15(土) 15:04:44.95 ID:ewglApEf0 strptime で %z や %Z でタイムゾーンを扱えるのは glibc の拡張 (他で真似している場合もあるかもしれんけど) なんだけど、 Arduino の C ライブラリは glibc ベースなの? そうじゃないなら各ライブラリのドキュメント (またはソースコード) を読まないとわからないし、そもそもそんな機能はないのかもしれない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/672
673: デフォルトの名無しさん (ワッチョイ 5357-u07z) [] 2025/02/15(土) 16:19:42.94 ID:BNBq5D0N0 >>672 どうもありがとうございます %zのようなのを使わず+の前後で分けてまず前だけでtm structに変換して後ろはエポック秒が何かに変換して使うのがベターでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/673
674: デフォルトの名無しさん (ブーイモ MM3b-6Hi7) [sage] 2025/02/15(土) 16:25:20.46 ID:Q9F/iLI2M やり方思いついたならやれ http://mevius.5ch.net/test/read.cgi/tech/1721137434/674
675: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF) [sage] 2025/02/15(土) 16:39:17.28 ID:ewglApEf0 >>673 どうやら Arduino は newlib ベースの模様。 newlib の strptime はタイムゾーンをサポートしてない。 どうにかしてタイムゾーンを扱いたい場合にどうやって実装するかは個々の事情によると思うのでなんとも言えない。 実績のある実装をどこかから持ってきたほうが良いんじゃないかと個人的には思う。 https://www.google.com/search?q=strptime+implementation+c パースするだけならたいして複雑なものではないので自分で書いてみ
てもいいかな。 ちなみにタイムゾーンを略称で扱うのは面倒な事情が絡む。 タイムゾーンを標準時からの差の時間で表すときはその時点での差があれば十分なので簡単なんだけど、略称で表すときはサマータイムの情報もいる。 たとえばニューヨークのタイムゾーン (EST) は普段は -05:00 だけどサマータイム中は -04:00 になる。 単に EST=-05:00 というわけではない。 そんでもってこのへんの扱いが面倒なのは変わることは割とよくあるということ。 サマータイムの期間が変わったりずらす時間が変わったり、あるいはゾーンが増えたり減ったりするのは
政治的な判断なので情報を定期的に更新する前提じゃないときちんと運用できない。 パソコンの OS だと適当なタイミングで更新する仕組みがあるのが普通だけど組み込みシステムだとそうもいかないこともある。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/675
676: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v) [sage] 2025/02/15(土) 21:12:02.85 ID:ewglApEf0 基本的なことを書き忘れてた。 strptime は C の言語仕様には無い関数で、 POSIX (UNIX 系 OS の統一仕様) にある。 POSIX は最低限の共通部分だけをまとめたもので実装には雑多な拡張を入れる前提なので各実装によってサポート内容が違う。 POSIX 準拠ではない環境で部分的に POSIX を真似てるだけ (POSIX の最低限の要求も満たしてない) ということもある。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/676
677: デフォルトの名無しさん (アウアウエー Sa13-9cJ9) [] 2025/02/16(日) 12:03:53.19 ID:rAQQ2/+ca 最初からtmstructをUTCで取得した方が楽ジャマイカ http://mevius.5ch.net/test/read.cgi/tech/1721137434/677
678: デフォルトの名無しさん (ワッチョイ 232c-1nj7) [sage] 2025/02/17(月) 01:18:04.49 ID:mzGEyEzq0 有効な同型ポインタの比較において、同一オブジェクト/配列由来でない場合、 == の結果は 0 (未定義動作ではない) C99(N1256) Annex J.2 Undefined behavior — Pointers that do not point to the same aggregate or union (nor just beyond the same array object) are compared using relational operators (6.5.8). ここに Equality operators の記述がない。 6.5.8 Relational operators 6.5.9 Equality operators でも同様の内容とな
っている。また、 N3231 https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3231.pdf 2024/03/21 Kleynhans, TS 6010 A Provenance-aware Memory Object Model for C, Revision Draft N3005 2022/06/16 Gustedt, A Provenance-aware Memory Object Model for C, draft TS 6010, version June 2022 では、provenance と abstract address という用語が導入されてスッキリとした文面になっている。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/678
679: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-7Htj) [sage] 2025/02/17(月) 10:52:55.67 ID:tIRsmIw80 C99 をあらためて読み返してみたら確かにそうだ……。 ・ ふたつのポインタが等しいと判断される条件が書いてあって「その場合に限り」等しいとする ・ 各演算子は指定された関係が真の場合は1を,偽の場合は0を返す ・ 未定義と書いてある (またはそれと等価な言い回し) か動作の明示的な定義がない場合は全て未定義 等しい条件を満たさないなら 0 が返されることを保証していることになるので未定義ではないことになる。 でもまあ現実的に考
えたらおかしいし、欠陥報告が出てたりしない? http://mevius.5ch.net/test/read.cgi/tech/1721137434/679
680: デフォルトの名無しさん (ワッチョイ 1501-7Htj) [sage] 2025/02/17(月) 19:30:42.26 ID:iQTBmgHC0 >>648のサンプルプログラムで同じことが起きることってある? http://mevius.5ch.net/test/read.cgi/tech/1721137434/680
681: デフォルトの名無しさん (ワッチョイ 23ad-MHHu) [] 2025/02/22(土) 07:05:24.68 ID:nEyoRU5r0 >>680 WSL2 の Ubuntu 22.04.5 にインストールされている gcc 11.4.0 で gcc -O でコンパイルしたら起きた。 -O なしだと起きない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/681
682: デフォルトの名無しさん (ワッチョイ fde8-ItHp) [sage] 2025/02/22(土) 12:11:54.96 ID:DWcN/KDk0 余計なことを http://mevius.5ch.net/test/read.cgi/tech/1721137434/682
683: デフォルトの名無しさん (ワッチョイ 23ad-MHHu) [] 2025/02/22(土) 14:47:10.43 ID:nEyoRU5r0 最適化オプションの有無で違いが出る状態はできれば止めて欲しかったな。やるとしても別オプションでやって欲しかった。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/683
684: デフォルトの名無しさん (ワッチョイ 1bab-2o2c) [sage] 2025/02/22(土) 16:41:59.90 ID:Z2hFLtuL0 その壁越えられないやつ多いよね 仕事でも最適化すると動かなくなるからってオフでリリースしてた雑魚エンジニアいたわ http://mevius.5ch.net/test/read.cgi/tech/1721137434/684
685: デフォルトの名無しさん (ワッチョイ cba1-Nstt) [sage] 2025/02/22(土) 17:57:58.33 ID:HOxFgRC/0 コンパイラのバグって事じゃないのか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/685
686: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-FOV+) [sage] 2025/02/23(日) 20:21:42.14 ID:5K9CwmG10 >>683 -0 はいくつかの具体的な最適化オプションを束ねたものだよ。 https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-O このうちのどれが効いてるのかは知らんけど。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/686
687: デフォルトの名無しさん (ワッチョイ b691-M1fQ) [sage] 2025/02/23(日) 21:01:43.23 ID:VuC2otmU0 >>684 最適化オフでのリリースは一つの有力な選択だと思います。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/687
688: デフォルトの名無しさん (ワッチョイ 094f-/70v) [sage] 2025/02/23(日) 21:45:10.07 ID:K8mfivgh0 最適化に副作用あるのは常識 http://mevius.5ch.net/test/read.cgi/tech/1721137434/688
689: デフォルトの名無しさん (ブーイモ MM99-A0+M) [sage] 2025/02/23(日) 21:54:21.08 ID:FQnOu1obM >>687 まザコならしょうがないわな 組み込みならハードのコスト一段下げられるけど諦めるしかない そんなザコ会社だから低収入もしかたない http://mevius.5ch.net/test/read.cgi/tech/1721137434/689
690: デフォルトの名無しさん (ワッチョイ 0d01-Ah42) [sage] 2025/02/24(月) 01:00:54.17 ID:IorN2uWP0 自己紹介かな http://mevius.5ch.net/test/read.cgi/tech/1721137434/690
691: デフォルトの名無しさん (ワッチョイ aeb7-/OIl) [sage] 2025/02/24(月) 17:12:08.95 ID:qLUUxQg70 gccなら-O0でも実施される最適化はあるので本気で最適化オフにしたいなら-O0で有効になる項目を-fno-に個別に指定する必要がありそこそこ面倒 http://mevius.5ch.net/test/read.cgi/tech/1721137434/691
692: デフォルトの名無しさん (ワッチョイ aebd-A0+M) [sage] 2025/02/24(月) 17:18:13.77 ID:SlW5Uo1a0 最適化オフとか言ってる人は、UBを踏んでしまってるから最適化で動作が変わるってことわかってんのか? http://mevius.5ch.net/test/read.cgi/tech/1721137434/692
693: デフォルトの名無しさん (ワッチョイ aeb7-/OIl) [sage] 2025/02/24(月) 17:22:09.48 ID:qLUUxQg70 まあコンパイラの最適化バグである可能性もないわけではないがな http://mevius.5ch.net/test/read.cgi/tech/1721137434/693
694: デフォルトの名無しさん (ワッチョイ b691-M1fQ) [sage] 2025/02/24(月) 20:28:13.00 ID:V/nislFh0 組み込み分野だと最適化によりデバッグがしづらくなることが多い。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/694
695: 警備員[Lv.1][新芽] (ワッチョイ d5f7-a+6O) [sage] 2025/02/24(月) 21:56:17.54 ID:JeKlmQzN0 gccで -O2 なし -Wall ありでコンパイルすると strict aliasing の警告がでないけど、 -O2 -Wall ありだと strict aliasing の警告が出るケースに当たったのだけど、 strict aliasing って安全に最適化するためのアレなのですかね(最適化しないときは strict aliasing には無頓着) http://mevius.5ch.net/test/read.cgi/tech/1721137434/695
696: デフォルトの名無しさん (ワッチョイ d5a2-eBms) [] 2025/02/24(月) 22:52:40.44 ID:ifUFLigf0 この人たちホントgccが大好きだよね http://mevius.5ch.net/test/read.cgi/tech/1721137434/696
697: デフォルトの名無しさん (ワッチョイ 76a1-x4eQ) [sage] 2025/02/24(月) 23:27:53.22 ID:LsxokMxo0 gccはいろんな環境で動かせるので便利ではある http://mevius.5ch.net/test/read.cgi/tech/1721137434/697
698: デフォルトの名無しさん (ワッチョイ ae76-A0+M) [sage] 2025/02/25(火) 01:13:30.67 ID:t+eQGWY+0 >>694 それ組み込み関係ないから http://mevius.5ch.net/test/read.cgi/tech/1721137434/698
699: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-FOV+) [sage] 2025/02/25(火) 08:31:05.22 ID:6jOr+W/20 >>695 警告を出すためには警告の条件に引っ掛かっていることがわからないといけないという単純な前提がある。 結果を使いもしないのに警告のためだけにエイリアス解析を頑張るのは合理的か? http://mevius.5ch.net/test/read.cgi/tech/1721137434/699
700: デフォルトの名無しさん (ワッチョイ b6e5-M1fQ) [sage] 2025/02/25(火) 09:04:02.65 ID:ODzMt1Nm0 >>698 そうだった http://mevius.5ch.net/test/read.cgi/tech/1721137434/700
701: 警備員[Lv.1][新芽] (ワッチョイ d56d-a+6O) [sage] 2025/02/25(火) 23:42:18.97 ID:MFbkYyJ10 >>699 最適化しないときは strict aliasing が不要なものなんですかね(最適化のための strict aliasing なんですかね)というつもりで書いたのだけど、分かりにくくてすまんね http://mevius.5ch.net/test/read.cgi/tech/1721137434/701
702: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Ah42) [sage] 2025/02/26(水) 10:14:24.43 ID:6jOr+W/20 >>701 少なくとも GCC や Clang では strict aliasing rules は最適化のためのものという認識で正しいよ。 -fstrict-aliasing (やこれらを含む -O2 以上の最適化) が有効になっているときに限りエイリアスベースの最適化をするし、そのときだけ strict aliasing rules が守られていることを要求する。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/702
703: デフォルトの名無しさん (ワッチョイ 317b-/OIl) [sage] 2025/02/26(水) 11:04:16.19 ID:x+jOZkKw0 strict aliasing rulesを守らないと未定義動作となるのはC言語の決まりなので特定の処理系で問題ないから守らなくて良いという考えは馬鹿のすること http://mevius.5ch.net/test/read.cgi/tech/1721137434/703
704: デフォルトの名無しさん (ワッチョイ ae51-A0+M) [sage] 2025/02/26(水) 11:20:14.18 ID:t+eQGWY+0 というかstrict aliasing rulesをわかってるやつがあえて守らないって考えにくいでしょ このスレを見てわかる通りわかってないやつらが大半 http://mevius.5ch.net/test/read.cgi/tech/1721137434/704
705: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-Ah42) [sage] 2025/02/26(水) 11:38:18.47 ID:6jOr+W/20 ビットパターンを別の型で読み替える可能性があるなら最初から union で書いておいたほうが人にとっても読みやすいしな。 (C++ では union でも common initial sequence の読み替えしか許しておらず、 C より制約が厳しいので注意。) http://mevius.5ch.net/test/read.cgi/tech/1721137434/705
706: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b132-FOV+) [sage] 2025/02/26(水) 15:23:36.19 ID:6jOr+W/20 >>703 未定義は「規格としては何も要求しない」なので処理系が何らかの追加保証をすることを禁じてない。 http://mevius.5ch.net/test/read.cgi/tech/1721137434/706
707: デフォルトの名無しさん (ワッチョイ 317b-/OIl) [sage] 2025/02/26(水) 15:45:51.57 ID:x+jOZkKw0 特定の処理系と心中するつもりでstrict aliasing rulesを守らない奴がいたらすごい馬鹿 http://mevius.5ch.net/test/read.cgi/tech/1721137434/707
708: 警備員[Lv.5][新芽] (ワッチョイ 09df-a+6O) [sage] 2025/02/26(水) 23:04:05.93 ID:0kyhL3S/0 >>702 助言をありがとうございます!! >>701 より http://mevius.5ch.net/test/read.cgi/tech/1721137434/708
709: デフォルトの名無しさん (ワッチョイ b691-M1fQ) [sage] 2025/02/27(木) 00:09:51.30 ID:oCSgSskf0 >>707 移植しないなら別にいいんじゃないの http://mevius.5ch.net/test/read.cgi/tech/1721137434/709
710: デフォルトの名無しさん (ワッチョイ 0a20-/OIl) [sage] 2025/02/27(木) 08:29:36.37 ID:Uw13P3Kf0 >>709 将来の更新の可能性も考慮しないわけね http://mevius.5ch.net/test/read.cgi/tech/1721137434/710
711: デフォルトの名無しさん (ワッチョイ 0d01-Ah42) [sage] 2025/02/27(木) 09:04:57.33 ID:smeEQtfp0 だから将来も移植しないんだろ http://mevius.5ch.net/test/read.cgi/tech/1721137434/711
712: デフォルトの名無しさん (ワッチョイ 0a20-/OIl) [sage] 2025/02/27(木) 09:23:08.30 ID:Uw13P3Kf0 移植と更新は違うぞw http://mevius.5ch.net/test/read.cgi/tech/1721137434/712
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 290 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s