本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP aC++/HP ANSI C バージョン A.06.05 リリースノート > 第1章 HP aC++/HP ANSI C リリースノート

このバージョンの概要

≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

この項では、このバージョンの HP aC++/HP C コンパイラで導入された新機能の概要を説明します。

バージョン A.06.05 の新機能

HP aC++ コンパイラのバージョン A.06.05 は、次の新しいオプションとプラグマをサポートしています。

PBO オプションの変更

+Oprofile=collect[:flavor] オプションに loopiter が追加され、ループ繰り返し数の収集ができるようになりました。

+Oprofile=collect でコンパイルを行う際に、生成された実装済み実行可能プログラム用のあて先フローファイルを指定することはできません。 その代わりに、+Oprofile=collect でコンパイルした実行可能プログラムを実行する前に、FLOW_DATA 環境変数に希望のパス名を設定します。 実行中に複数の実装済みバイナリが特定の flow.data ファイルを更新しようとすると、データが別の接尾辞 (例: flow.XXX) を持つファイルに書き込まれる場合があります。 これは、fork() とexec() を使用して実行プロセスの収集を作成するパラレルプログラムに対して行われることがあります。

+w64bit オプション

このオプションは、32 ビットのアプリケーションを 64 ビットに変換する際に潜在的な問題を検出するのに役立つ警告を有効にします。 +w64bit オプションは、64 ビットにコンパイルする場合 (+DD64を使用) にのみ適用します。 このオプションは、+M2 オプションと同等です。

+wdriver オプション

このオプションは、本リリースでは無効になっている複数のドライバ警告を有効にします。 これらは、Integrity サーバーでは既に無効な一部の PA-RISC オプション用の警告です。

+wlint オプション

このオプションは、lint と同様の機能を提供する複数のリマークと警告を有効にします。 これらのコンパイル時の診断は、ソースコード内の潜在的な問題を検出するのに非常に役立ちます。

+wsecurity オプション

このオプションは、コンパイル時の潜在的なセキュリティ違反の診断を有効にします。 信頼性のないデータがプログラムにおけるクリティカルな基準に達している場合、警告が発行されます。 これはコンパイラによって実行されるクロスモジュール分析に基づいています。

+wsecurity オプションは、-ipo または +O4 オプションが指定されていない場合でも、クロスモジュール分析の一部を暗黙的に有効にします。 このオプションは、結果として +wsecurity オプションを使用しないビルドに比べて、コンパイル時間の増大に繋がる可能性があります。

このオプションを使用すると、ユーザーが指定した最適化レベル以外の最適化をコンパイラが実行する場合があります。 +wsecurity-ipo または +O4に追加して使用すると、コードの生成に影響は出ず、コンパイル時間もそれほど増えることはありません。

+check=type オプション

+check=type オプションは、ユーザープログラム内の一般的なコーディングエラーを検出するための追加の実行時チェックを提供します。

使用法:

+check=all|none|bounds|malloc|stack|uninit

+check=all オプション

このオプションは、コンパイラが提供するすべての実行時チェックを有効にします。 コマンド行の最初の方にある +check オプションをオーバーライドします。

+check=none オプション

このオプションは、すべての実行時チェックオプションを無効にします。 コマンド行の最初の方にある +check オプションを無効にします。

+check=bounds オプション

このオプションは、配列変数への配列外参照のチェックを有効にします。 1 つの配列要素に対する各参照をチェックします。 チェックが失敗すると、エラーメッセージが表示され、プログラムが中断します。 +check=bounds オプションが適用できるのは、ローカル変数、グローバル配列変数、および構造体の配列フィールドへの参照だけです。

+check=malloc オプション

このオプションは、実行時のメモリーリークとヒープ破損のチェックを有効にします。 その結果、ヒープオブジェクトの境界を越えた書き込みや、有効なヒープオブジェクトではないポインタやメモリー不足の状態などに対する free または relloc 呼び出しのせいで、ユーザープログラムが停止することがあります。 メモリーリーク情報が捕捉され、ログファイルに書き込まれます (プログラムが存在する場合)。 ログファイル名はプログラムが終了する前に出力されます。

+check=stack[:frame|:variables|:none] オプション

このオプションは、スタック境界外への書き込みを検出する実行時チェックを有効にします。 すべてのスタックフレームの前後、および一部のスタック変数の周辺にマーカーが配置されます。 プロシージャの終了時にチェックが行われ、上書きされているマーカーがあるかどうかを調べます。 スタックチェックが失敗すると、エラーメッセージとスタックトレースが stderr に書き込まれ、プログラムが中断します。 スタックチェックは、特定のプロシージャ (longjmp()exit()abort() の使用、または例外処理など) の異常終了では実行されません。

+check=uninit オプション

このオプションは、スタック変数が定義される前にその使用状況をチェックします。 変数が使用されていることを検出すると、エラーメッセージが表示され、プログラムが中断します。 このチェックは、内部フラグ変数を追加することにより行われ、その変数の定義とユーザー変数の使用を追跡します。

+Ointeger_overflow オプションのデフォルト変更

+Ointeger_overflow=moderate のデフォルトが、最適化レベル 2 に変更されました。 この変更は、より幅広いアプリケーションクラスを最適化レベルでコンパイルし、正しく実行できるようにするために行われました。 以前は、すべての最適化レベルのデフォルトは、+Ointeger_overflow=aggressive でした。

+Ofast オプションの変更

このオプションは、最適な実行スピードと適切なビルド時間のためのコンパイルとリンクオプションの組み合わせを選択します。 バージョン A.06.05 では、次のようになります。+O2 +Onolimit +Olibcalls +Ointeger_overflow=aggressive +Ofltacc=relaxed +DSnative +FPD -Wl,+pi,4M -Wl,+pd,4M -Wl,+mergeseg

注記: +Ointeger_overflow=aggressive はこのバージョンで新たに追加されました。

統合インライン制御オプションの改善

本リリースでインラインオプションの制御機能が改善され、コンパイラコンポーネント全体の一貫性が向上しました。 HLO および aCC5 FE が SYZYGY フェーズに変更され、インラインを処理できるようになりました。

使用可能な-minshared オプションの追加

本リリースで、aC++ がシステムヘッダーファイルからのエントリを別々にインタプリトできるようになりました。 /usr/include からのエントリ (TARGETROOT の変更が可能) はシステム API エントリと見なされ、デフォルトのバインディングを自動的に受け取ります。ただし、この動作をオーバーライドするエントリ用のプラグマが存在する場合は除きます。

-WC,--guiding_decls オプション

このオプションは、テンプレート関数の案内宣言 (guiding declaration) の認識を有効にします。 案内宣言 (guiding declaration) は、関数テンプレートのインスタンスと一致する関数宣言ですが、その定義は関数テンプレートそのものから派生しているため、明示的宣言はありません。

注記: このオプションは、HP aC++ コンパイラのバージョン A.06.00 でのみ使用できます。

IVDEP プラグマ

#pragma IVDEP

このプラグマは、配列型要素への参照を伴う関連ループへの明白なループ依存をすべて無視するようコンパイラに命令します。

NODEPCHK プラグマ

#pragma NODEPCHK

このプラグマは、誘導変数およびその他のスカラーループ依存を除く関連ループ (タイプに関係なく) へのすべてのループ依存を無視するよう、コンパイラに命令します。 どのスカラーループ依存を無視するかは、コンパイラの実装により異なります。 これは F90 FPP$ NODEPCHK プロパティと一致します。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 2005 Hewlett-Packard Development Company, L.P.