パスワードを忘れた? アカウント作成
8001735 journal
GNU is Not Unix

t-nissieの日記: 【電脳】gcc 4.8.0 が無限ループにするというやつが無限ループにならない 2

日記 by t-nissie

http://cpplover.blogspot.jp/2013/03/gcc-48spec.html より
gcc 4.8.0 が無限ループにするというやつが無限ループにならない。
警告は出るけど…

(追記)
SourceForge.JP Magazineの記事には

ループ最適化機構「Graphite」を有効にするためには「CLooG 0.18.0」および「ISL 0.11.1」も必要となる。

とあります.これらを入れていないので無限ループにならずエラーメッセージだけなのかもしれません.
不注意で申し訳ないです.4月下旬に試してまたレポートできると思うんですが.
タレコミをするなら,いろいろわかっていないとダメですねぇ.

$ gcc --version
gcc (GCC) 4.8.0
$ head -22 *
==> satd.c <==
/* satd.c */
#include <stdio.h>
#include <stdlib.h>
#include "undef_gcc48.h"
int main()
{
  int i;
  int s=-1;
  for (i=0; i<16; i++) {
    d[i] = s*i;
    printf("%d\n", d[i]);
    s = -s;
  }
  printf("%d\n", SATD());
  return 0;
}
 
==> undef_gcc48.c <==
#include "undef_gcc48.h"
int SATD()
{
  int satd = 0, dd, k;
  for (dd=d[k=0]; k<16; dd=d[++k]) {
    satd += (dd < 0 ? -dd : dd);
  }
  return satd;
}
 
==> undef_gcc48.h <==
int d[16];
int SATD();
$ gcc -Wall -c -O3 undef_gcc48.c
undef_gcc48.c: 関数 ‘SATD’ 内:
undef_gcc48.c:5:29: 警告: 配列の添字が配列の境界を上回っています [-Warray-bounds]
   for (dd=d[k=0]; k<16; dd=d[++k]) {
                             ^
$ gcc -Wall -c -O3 satd.c
$ gcc -Wall -o satd -O3 satd.o undef_gcc48.o
$ ./satd
0
1
-2
3
-4
5
-6
7
-8
9
-10
11
-12
13
-14
15
120
$

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

にわかな奴ほど語りたがる -- あるハッカー

読み込み中...