問題タブ [sunstudio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - スプリアス」値を返すことが期待されています」という警告?
SunOS 5.11 (Solaris 11.3) の Sun Studio 12.3 で作業しています。偽の警告を提供します:
"<file.h>"、1 行目: 警告: "<function>" は値を返す必要があります。
関数は基本クラス インターフェイスの一部であり、そのように見えます。「なぜそれを行うのか」という議論を避けるために、基本クラスのインターフェイスについてのみ言及します。以下のような非メンバー関数は、それをトリガーするのに十分です。
同様の問題についての言及が見つかりました。たとえば、Xapian-core変更ログには次のように記載されています。
- Sun の C++ コンパイラからの "is expected to return a value" 警告を無効にします
。これは、"throw" ステートメントで終わる関数に対して発生するためです。本物
のインスタンスは、優れた警告機構を備えたコンパイラによってキャッチされます。
警告を無効にする SunStudio C++ コンパイラ プラグマによれば、使用できます-erroff=voidretw
。-erroff=voidretw
有効な調査結果が抑制される可能性があるため、私は心配しています。また、 を使用する場合は#pragma
、ユーザー コードへの相互受粉を避けるために、それをプッシュ アンド ポップする必要があります。Sun Studio で警告状態をプッシュおよびポップする方法がわかりません。
私の質問は、Sun Studio のヘッダーにある 1 つの関数の警告を無効にするにはどうすればよいですか?
メッセージは異なりますが、これは重複しているように見えます: 「最後のステートメントは値を返す必要があります」という警告を黙らせるには? これを重複として閉じるために投票するつもりだと思います。
c++ - ube エラー: _mm_aeskeygenassist_si128 組み込みには少なくとも -xarch=aes が必要です
SunOS 5.11 (Solaris 11.3) の Sun Studio 12.3 で作業しています。私がよく理解していないコンパイルエラーを提供しています:
追加-m64
しても同じエラーが発生します。
テスト プログラムにはあまり意味がありません。SSE2 組み込み関数と AES 組み込み関数を実行するだけです。
私はマニュアルを読み、SSE2、SSSE3、AES、SSE4 などの複数の CPU アーキテクチャ機能を指定する方法を学ぼうとしています。しかし、複数のものを指定する方法を判断できないようです。これは、私が見つけたより完全なページの 1 つです: Oracle Man Page CC.1ですが、明らかに何かが欠けてい-xarch
ます。
私は何を間違っていますか、どうすれば修正できますか?
solaris - Sun Studio 12.5 ではどのリポジトリを有効にする必要がありますか?
当社は、Oracle OTN Network の一部です。Oracle Solaris Studio パブリッシャーがインストールされている (有効になっている) ため、Sun Studio 12.4 までサポートできます。次のリリースでは、Sun Studio 12.5 のサポートを追加したいと考えています。
12.4 の手順に従って Sun Studio 12.5をインストールしようとしましたが、見つかりません。
Sun Studio 12.5 はどのパッケージリポジトリにありますか?
期待される結果と、最新のコンポーネントを検索した結果を次に示します。
macros - プリプロセッサで -xarch オプションを検出しますか?
Solaris 11 で Sun Studio 12.4 および 12.5 を使用しています。CRC32 のストレート C/C++ 実装、または Intel 組み込み関数を使用した CRC32 の最適化バージョンを提供するソース ファイルがあります。実行時に、関数ポインターに適切な実装が設定されます。
デュアル Xeon を使用した x86 サーバーでのテストでは、コンパイラのバージョンに基づいてコード パスを利用できるようにしているため、次の結果が生成されます。SunCC 12.1 は SSE4 のサポートを追加したため (マトリックスを適切に解析した場合) __SUNPRO_CC >= 0x5100
、.
SunCC は、やなどの通常の GCC 定義を定義していません。さらに、SunCC は、コンパイラのバージョンがサポートを示す MS VC++ のように、組み込み関数を利用可能にしていないようです。__SSE4_1__
__SSE4_2__
SunCC はオプションに基づいて機能を有効にしているように見え-xarch
ますが、プリプロセッサでそれを検出する方法が明確ではありません。さらに、使用-xarch
すると、下位レベルのプロセッサ (「最小」プラットフォームのようなもの) でプログラムの実行が失敗する原因となるビットが設定されます。
2 つの質問があります。
-xarch
プリプロセッサでオプションを検出するにはどうすればよいですか?-xarch
プログラムが下位レベルのプロセッサで実行できるように、ビットを無効にするにはどうすればよいですか?
以下は、 でコンパイルしたマクロ ダンプからのもの-xarch=aes
です。利用可能な機能を示すものは何もないことに注意してください。