Jump to content 日本-日本語
日本HPホーム 製品とサービス サポートとドライバ ソリューション ご購入方法
≫ お問い合わせ
日本HPホーム
企業ユーザ向けサポート情報   >  HP-UX サポート  >  セキュリティ報告&パッチダイジェスト翻訳版

PHSS_35976 11.31 HP C/aC++コンパイラ(A.06.14)

企業ユーザ向けサポート情報

HP-UX サポート
Tru64 サポート
OpenVMS サポート
セキュリティ報告&パッチダイジェスト翻訳版
技術情報ツリー
ソフトウェアアップデート情報
ITRC日本フォーラム

ITRC

パッチデータベース
技術情報ベースの検索
サポートケースマネージャ
ソフトウェア アップデート マネージャ (SUM)
ご利用の手順
日本HPサイトマップ
コンテンツに進む
パッチ名:   PHSS_35976

パッチ摘要: 11.31 HP C/aC++コンパイラ(A.06.14)

作成日:  07/03/07

公開日:  07/04/18

ハードウェアプラットフォームおよびOSリリース:

	11.31

現象:

	PHSS_35976:

	01)JAGag30084:
	システムヘッダーで組み込み関数として定義されている関数の完全なプロトタ
	イプではなく、K&Rプロトタイプを使用するソースをコンパイルすると、コン
	パイラが異常終了します。しかし、コンパイラはそのような宣言を、組み込み
	関数ではなく通常の関数の宣言とみなすべきです。

	02)JAGag32532:
	関数呼び出しのリターン時に、値渡しラージパラメータのアドレス/値が壊れ
	ていることがあります。

	03)JAGag27428:
	06.10のコンパイラはコードをデフォルトモードでクリーンにコンパイルしま
	すが、06.12以降では、+dep_name/+strictを指定しないとクリーンにコンパイ
	ルされません。

	04)JAGag29090:
	参照を返す関数にdynamic_cast最適化を適用すると、関数が未初期化変数にア
	クセスします。そのため、関数がNULLを返したり、シグナル11を受け取ること
	があります。

	05)JAGaf99194:
	交換、タイリング、アンロールおよびジャム、融合、および分散のようなルー	
	プ最適化を行うと、浮動小数点(FP)演算の順序が変わり、FP結果の精度が低下
	する可能性があります。したがって、コンパイラは、HPのFPモデルに従ってこ
	れらの最適化を行うべきです(つまり、ループ最適化によってFP結果が変わる
	場合は、ユーザーが+Ofltacc=relaxedを指定した場合にのみその最適化を行う
	べきです)。ところが、現在のコンパイラはこのルールを無視します。

	06)JAGag10594:
	+Ofenvaccessオプションと+Ofltacc=relaxedオプションを組み合わせて使用す
	ると、オプティマイザが無限にループすることがあります。

	07)JAGag16706:
	不正なmemcpy合成が行われます(この問題を回避するために+Uhmemop=disable
	を指定せざるを得ません)。

	08)JAGag17310:
	デバッグモード(-g)の場合、未結合配列引き数の宣言内に不完全なクラス宣言
	が含まれていると、コンパイラが異常終了します。

	09)JAGag17453:
	非常に大きな"値によるstruct"を渡すと、コンパイルに時間がかかり、メモリ
	ー使用量が増えます。

	10)JAGag19492:
	デフォルトのfltaccの場合、ループ交換が不正確なFP結果を生成します。

	11)JAGag20382:
	ブリッジ内でのアサート。このエラーが起きるのは、+O2の場合だけのようで
	す。

	12)JAGag23282:
	パラメータがオーバーラップしていると、不正なコード移動が行われることが
	あります。

	13)JAGag20670:
	switch文使用時のリカバリコード生成にバグがあります。

	14)JAGag24837:
	IAシステム用最適化オプション"-O"を使ってfprintf()をコンパイルすると、
	fprintf()の実行時に、x25initコマンドが/etc/x25/x25confファイルを壊しま
	す。

問題点の説明:

	PHSS_35976:

	01)JAGag30084:
	ある他社製プリプロセスツールが生成するコードは、コンパイラが(memsetの
	ような)組み込み関数として認識する一部の関数の(システムヘッダーで定義さ
	れている)完全なプロトタイプではなくK&Rプロトタイプを使用しています。
	その結果、コンパイラは、それらの関数に渡される不正な引き数を正しく診断
	せずに、後で、それらの引き数が違反しているとみなして異常終了していまし
	た。

	02)JAGag32532:
	ラージパラメータに渡すラージパラメータのコードを正しく生成していません
	でした。

	03)JAGag27428:
	STLPortテストケースがデフォルトモードではエラーになっていました。その
	ため、+dep_name/+strictを指定せざるを得ませんでした。

	04)JAGag29090:
	コンパイラは、=、++/--、関数呼び出しおよび?:のような、副作用を伴う式の
	動的キャストに対する参照を正しく処理していませんでした。

	05)JAGaf99194:
	一部のループ最適化で、fltaccオプションが無視されていました。

	06)JAGag10594:
	"+Ofenvaccess +Ofltacc=relaxed"を指定すると、オプティマイザが無限にル
	ープすることがありました。

	07)JAGag16706:
	PortAThon: +O2のループが不正に__milli_memmoveを呼び出していました。

	08)JAGag17310:
	DWARF生成に問題があったため、コンパイラが異常終了していました。

	09)JAGag17453:
	お客様のテストケースで、コンパイルに時間がかかり、メモリー割り当てエラ
	ーが起きていました。

	10)JAGag19492:
	+O3を使って最適化すると、値が変わることがありました。

	11)JAGag20382:
	仮想呼び出し時のアサート"syz_gen_be.C 8341 +O2"。

	12)JAGag23282:
	コンパイラは、標準ライブラリ呼び出し(strlen)への変更付きルーチンパラメ
	ータ渡しを正しく解析していませんでした。その結果、呼び出しの前に、変更
	コードが移動されるため、呼び出しから予期しない出力が返されていました。

	13)JAGag20670:
	+O2使用時のswitch文での不正なリカバリコード。

	14)JAGag24837:
	x25initコマンド"-O"は、fprintfのコードを正しく生成していませんでした。

-----------------------------------------------------------------------------
Patch Name: PHSS_35976

Patch Description: 11.31 HP C/aC++ Compiler (A.06.14)

Creation Date: 07/03/07

Post Date: 07/04/18

Hardware Platforms - OS Releases: 
	11.31

Products: 
	HP aC++ A.06.12

Filesets: 
	ACXX.ACXX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP
	ACXX.ACXX-HELP,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP
	ACXX.ACXX-STDLIB,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP

Automatic Reboot?: No

Status: General Release

Critical: 
	Yes
	PHSS_35976: ABORT CORRUPTION
	 See JAGag30084, JAGag17310, JAGag24837 and JAGag32532.

Category Tags: 
	defect_repair general_release critical halts_system
	corruption

Path Name: /hp-ux_patches/11.X/PHSS_35976

Symptoms: 
	PHSS_35976:
	JAGag30084: A source that uses K&R prototypes instead of
		    the complete prototype for functions declared
		    as builtins in system headers causes the
		    compiler to abort. The compiler should treat
		    such a declaration as the declaration of a
		    normal function and not a builtin.
	JAGag32532: Address/values of large parameters passed by
		    value may be corrupted upon return of function
		    call.
	JAGag27428: Code compiles cleanly in default mode with
		    06.10, but needs +dep_name or +strict to
		    compile cleanly in 06.12 and above.
	JAGag29090: dynamic_cast optimization, when applied to a
		    function that returns a reference, will access
		    uninitialized variables. It may return NULL or
		    get a signal 11.
	JAGaf99194: Some loop optimizations such as interchange,
		    tiling, unroll-and-jam, fusion, and
		    distribution can potentially change the order
		    of floating- point (FP) operations, which
		    result less accurate FP result. The compiler
		    should guarantee that these optimizations
		    follow the HP's FP model (i.e. if a particular
		    loop optimization changes FP result value, this
		    optimization should only be performed when the
		    user specifies +Ofltacc=relaxed). This is
		    broken in current compiler.
	JAGag10594: +Ofenvaccess, +Ofltacc=relaxed options
		    combination can cause optimizer to loop
		    infinitely.
	JAGag16706: Wrong memcpy synthesis is happening.
		    (+Uhmemop=disable to workaround)
	JAGag17310: Given an incomplete class declaration involved
		    in the declaration of an unbounded array
		    argument the compiler will abort under debug
		    (-g).
	JAGag17453: passing huge struct by value results in long
		    compile time and memory usage.
	JAGag19492: Loop interchange produces inaccurate FP results
		    in default fltacc.
	JAGag20382: Assert in the bridge. It seems to only fail at
		    +O2.
	JAGag23282: overlapping parameters result in wrong code
		    motion in some case.
	JAGag20670: Recovery code generation bug with a switch
		    statement.
	JAGag24837: x25init command corrupts the /etc/x25/x25conf
		    file during an fprintf(), when it is compiled
		    with the optimization option "-O" for IA
		    systems.

Defect Description: 
	PHSS_35976:
	JAGag30084: Code generated by a third party preprocessing
		    tool uses K&R prototypes instead of the
		    complete prototype found in system headers for
		    certain functions that the compiler recognizes
		    as builtins (such as memset). As a result, the
		    compiler does not correctly diagnose bad
		    arguments passed to these functions, and
		    subsequently aborts due to assumptions about
		    these arguments being violated.
	JAGag32532: Bad code for large parms passed to large parms
	JAGag27428: STLPort test case fails in default mode, needs
		    +dep_name or +strict
	JAGag29090: The compiler incorrectly processes references
		    to dynamic casts of expressions involving side
		    effects, such as =, ++/--, function calls, and
		    ?:.
	JAGaf99194: fltacc option is ignored by some loop
		    optimizations
	JAGag10594: "+Ofenvaccess +Ofltacc=relaxed" can cause
		    optimizer to loop infinitely
	JAGag16706: PortAThon: +O2 loop incorrectly calls
		    __milli_memmove
	JAGag17310: This is caused by a problem in DWARF
		    generation.
	JAGag17453: Long compilation time and memory allocation
		    failure in customer testcase
	JAGag19492: Value-changing optimization with +O3
	JAGag20382: Assert syz_gen_be.C 8341 +O2 on virtual call
	JAGag23282: The compiler incorrectly analyzed the passing
		    of a modified routine parameter to a a standard
		    library call (strlen). As a result, it moved
		    the modification before the call, resulting in
		    an unexpected output from the call.
	JAGag20670: Recovery code error in switch statement using
		    +O2
	JAGag24837: x25init command -O generated bad code for
		    fprintf

Enhancement: 
	No

SR: 
	8606475763 8606478215 8606472569 8606474570 8606441461
	8606453886 8606460672 8606461346 8606461495 8606463736
	8606464705 8606467926 8606465040 8606469650

Patch Files: 

	ACXX.ACXX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	/opt/aCC/bin/aCC
	/opt/aCC/bin/cc
	/opt/aCC/bin/c89
	/opt/aCC/bin/c99
	/opt/aCC/bin/c++filt
	/opt/aCC/lbin/ecom
	/opt/aCC/lib/nls/msg/C/ecc.cat

	ACXX.ACXX-HELP,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	/opt/aCC/html/C/guide/options.htm

	ACXX.ACXX-STDLIB,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	/opt/aCC/include_std/fstream
	/opt/aCC/include_std/fstream.cc

what(1) Output: 

	ACXX.ACXX-STDLIB,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	/opt/aCC/include_std/fstream:
		None
	/opt/aCC/include_std/fstream.cc:
		None

	ACXX.ACXX-HELP,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	/opt/aCC/html/C/guide/options.htm:
		None

	ACXX.ACXX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	/opt/aCC/bin/aCC:
		HP C/aC++ for Integrity B3910B A.06.14 [Feb 22 2007]
	/opt/aCC/bin/cc:
		HP C/aC++ for Integrity B3910B A.06.14 [Feb 22 2007]
	/opt/aCC/bin/c89:
		HP C/aC++ for Integrity B3910B A.06.14 [Feb 22 2007]
	/opt/aCC/bin/c99:
		HP C/aC++ for Integrity B3910B A.06.14 [Feb 22 2007]
	/opt/aCC/bin/c++filt:
		HP aC++ for Integrity B3910B A.06.14 [Feb 22 2007] D
			emangler Library
	/opt/aCC/lbin/ecom:
		HP C/aC++ for Integrity B3910B A.06.14 [Feb 22 2007]
		IELF v2.6 (SYZYGY Feb 21 13:48)
		HP Low-level optimizer AR.0606.116 (02/21/07)
		HP Itanium libflow AR0703.1 (06/19/06) [3006574443 3
			94309]
		linkstamp Thu Feb 22 14:46:45 2007 PST [Build N/A]
	/opt/aCC/lib/nls/msg/C/ecc.cat:
		None

cksum(1) Output: 

	ACXX.ACXX-STDLIB,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	4038507157 19536 /opt/aCC/include_std/fstream
	2129182477 25380 /opt/aCC/include_std/fstream.cc

	ACXX.ACXX-HELP,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	1665390253 270654 /opt/aCC/html/C/guide/options.htm

	ACXX.ACXX,fr=C.06.12,fa=HP-UX_B.11.31_IA,v=HP:
	3659697472 833700 /opt/aCC/bin/aCC
	3659697472 833700 /opt/aCC/bin/cc
	3659697472 833700 /opt/aCC/bin/c89
	3659697472 833700 /opt/aCC/bin/c99
	154163613 559736 /opt/aCC/bin/c++filt
	3912211226 53144188 /opt/aCC/lbin/ecom
	1200102433 122390 /opt/aCC/lib/nls/msg/C/ecc.cat

Patch Conflicts: None

Patch Dependencies: 
	11.31: PHSS_35980

Hardware Dependencies: None

Other Dependencies: None

Supersedes: None

Equivalent Patches: 
	PHSS_35974:
	s700: 11.23
	s800: 11.23

	PHSS_35975:
	s700: 11.23
	s800: 11.23

Patch Package Size: 20240 KBytes

Installation Instructions: 
	Please review all instructions and the Hewlett-Packard
	SupportLine User Guide or your Hewlett-Packard support terms
	and conditions for precautions, scope of license,
	restrictions, and, limitation of liability and warranties,
	before installing this patch.
	------------------------------------------------------------
	1. Back up your system before installing a patch.

	2. Login as root.

	3. Copy the patch to the /tmp directory.

	4. Move to the /tmp directory and unshar the patch:

		cd /tmp
		sh PHSS_35976

	5. Run swinstall to install the patch:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -s /tmp/PHSS_35976.depot

	By default swinstall will archive the original software in
	/var/adm/sw/save/PHSS_35976.  If you do not wish to retain a
	copy of the original software, include the patch_save_files
	option in the swinstall command above:

		-x patch_save_files=false

	WARNING: If patch_save_files is false when a patch is installed,
		 the patch cannot be deinstalled.  Please be careful
		 when using this feature.

	For future reference, the contents of the PHSS_35976.text file is
	available in the product readme:

		swlist -l product -a readme -d @ /tmp/PHSS_35976.depot

	To put this patch on a magnetic tape and install from the
	tape drive, use the command:

		dd if=/tmp/PHSS_35976.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions: None

ページトップへ
セキュリティ報告&パッチダイジェスト翻訳版に戻る
プライバシー 本サイト利用時の合意事項 ウェブマスターに連絡
© 2008 Hewlett-Packard Development Company, L.P.