Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.LINUX
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.LINUX с датами от 24 Jan 02 06:01:34 до 12 May 24 13:25:46, всего сообщений: 8286
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 6976 из 8286 ========================================= RU.LINUX =
От   : Valentin Nechayev                2:5020/400         31 Dec 02 22:22:28
Кому : "Alexandr S. Agranovsky"                            31 Dec 02 22:22:28
Тема : Re: kernel compiling
FGHI : area://RU.LINUX?msgid=iv.nn.kiev.ua+e5258c39
На   : area://RU.LINUX?msgid=udmnet.ru+8b4a5692
= Кодировка сообщения определена как: IBM866 =================================
Ответ: area://RU.LINUX?msgid=udmnet.ru+46655173
==============================================================================
From: Valentin Nechayev <netch@segfault.kiev.ua>

>>> Alexandr S. Agranovsky wrote:

VN>  AC>>>   for (int i=0; i < 5; ++i){
VN>  AC>>>     for (int i=0; i < 15; ++i){
ASA> ...
VK>>> происходит выход из внешнего цикла. Или здесь опечатка и во внутреннем цикле
VK>>> используется переменная j?
ASA> Соль в том, что после первого for имеем составной оператор {},

Возражение шло на пример, где оптимизация убила внутренний цикл в 0.

ASA> внутри которого можно заново определить переменную с тем же
ASA> именем - но фактически это будет уже _другая_ переменная.
ASA> Все согласно правилам Си и C++ (я скомипилил и проверил, как .c
ASA> так и .cpp, с ключом -O0).

Да??? Для Си это прокатывать никак не должно, что у меня и происходит:

20:21:21:netch@iv:~/tmp>gcc -c t.c
t.c: In function `main':
t.c:4: syntax error before `int'
t.c:4: `i' undeclared (first use in this function)
t.c:4: (Each undeclared identifier is reported only once
t.c:4: for each function it appears in.)
t.c:4: syntax error before `)'
t.c:5: syntax error before `)'
20:21:27:netch@iv:~/tmp>gcc -v
Using builtin specs.
gcc version 2.95.4 20020320 [FreeBSD]

А вот для C++ действительно может работать:

20:18:04:netch@iv:~/tmp>gcc -c -xc++ t.c
20:18:29:netch@iv:~/tmp>echo $?
0

Так что я тебе рекомендую 1) тщательно проверить, что ты действительно
компилировал это как программу на C, а не на C++, 2) в этом случае назвать
компилятор, чтобы я никогда им не пользовался ;))

ASA> Оптимизатор тут ни при чем.

Ты точно потерял контекст. Вот максимум что я смог добиться от 2.95.4:

main:
        pushl %ebp
        movl %esp,%ebp
        xorl %eax,%eax
        xorl %edx,%edx
        .p2align 2,0x90
.L6:
        incl %edx
        movl $14,%ecx
        .p2align 2,0x90
.L10:
        incl %eax
        decl %ecx
        jns .L10
        cmpl $4,%edx
        jle .L6
        movl %ebp,%esp
        popl %ebp
        ret

А ICC оказался умнее, он сразу дал готовый результат.


-netch-
--- ifmail v.2.15dev5
* Origin: Dark side of coredump (2:5020/400)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.074484 секунды