LINUX.ORG.RU

Китайский G++


0

1

Разочаровавшись в gcc Какая версия gcc даст предупреждение на данный код? (комментарий) не проходит много времени, как я сталкиваюсь с ерундой G++. Использовал в программе бинарный поиск и по невнимательности неправильно вызывал функцию, а именно, для массива из 2 элементов, говорил что там 5. Вместо того чтобы возвращать (-1), мне возвращался верный индекс элемента... Под виндой в visual studio возвращает (-1).

#include<iostream>

int BinarySearch(const int *arr, int count, const int &elem) {
  int first = 0;
  int last = count;
  while(first < last) {
    int mid = first + ((last - first) >> 1);
    if(elem <= arr[mid]) {
      last = mid;
    }
    else {
      first = mid + 1;
    }
  }
  return (first == count || arr[first] != elem) ? -1 : first;
}



int main() {
  int a[] = {4,5};
  std::cout << BinarySearch(a, 5, 5);

  return 0;
}
 
Проверял на g++ 4.6 4.7.2 4.8.2 Есть подозрения, что у меня apt-get тянет эти компиляторы из левого репозитория. Ибо у многих из вас скорее-всего уже будет выдаваться правильно "-1", а у меня выводится «1». Думаю, что компиляторы левые у меня т.к.в прошлой теме про gcc только у меня и у одного анонима не выводилось сообщение об ошибке.

Потратил 3 часа на поиск ошибки в программе (просто она работала правильно, но система тестирования не принимала, ибо там нормальный компилятор 4.7.2) из-за этой фигни, злой как собака... никакого доверия теперь к gcc и g++.



Последнее исправление: mrXorg (всего исправлений: 2)
Ответ на: комментарий от chenger

В этом Вашем интернете и не понять кто прикалывается, а кто реально дебил.

4.2

я реально — дебил. А вот насчёт ТСа я не очень понимаю. Но не дебил, это точно.

emulek
()
Ответ на: комментарий от mrXorg

Слушай, а что тебя так бомбануло-то?

Лол, я вроде тут со всеми так общаюсь.

То есть у тебя постоянно бомбит? Сходи к врачу что ли.

anonymous
()
Ответ на: комментарий от mrXorg

Чтобы валгринд отловил эту ошибку, нужно было чтобы функция вызывалась с «ложным размером». У меня же программа работала подставляя ложное значение в функцию редко. А если и выставляла, то отрабатывала правильно( т.е. найденный индекс случайно оказывался верным) Т.е. мне нужно было написать over 1000 тестов для программы и спарсить выводы, чтобы валгринд нашел что есть зависимать от неинициализированного значения.

Это потому что ты дебил, не знакомый с методологией разработки софта. А дебилы должны страдать. Всё закономерно.

anonymous
()
Ответ на: комментарий от mrXorg

Сколько можно писать, что в работающей большой программе найти ошибку намного сложнее

Хз, где ты там писал про свою супер-боевую-мега-сложную(c)(r) программу. Тут есть кусок, который прекрасно ловит волгринд.

ты ещё один тупой что ли?

Оскорбить чоль хотел?

false ★★★★★
()
Ответ на: комментарий от mrXorg

И отдельным пунктом также доставляет тот факт, что ты на крестах херачишь передачу указателя и размера отдельными аргументами, вместо того, чтобы инкапсулировать потроха в класс.

anonymous
()

Я не пойму, чего у тебя так бомбит? Есть программа, в ней ошибка, поэтому программа работает непредсказуемо. Что не так-то? Чего тебе не нравится?

legolegs ★★★★★
()
Ответ на: комментарий от chenger

Одного дефолтного варианта достаточно.

anonymous
()
Ответ на: комментарий от legolegs

Сейчас он расскажет тебе про «у каждого своё мнение» :3

anonymous
()
Ответ на: комментарий от false

Хз, где ты там писал про свою супер-боевую-мега-сложную(c)(r) программу. Тут есть кусок, который прекрасно ловит волгринд.

Итак, идиот. Во-первых, никто никогда не будет скидывать программу целиком, ибо тогда никто не будет разбираться и смотреть код. Во-вторых, почитай ещё раз, идиот.

т.е. этот код я написал для наглядности только тут, чтобы сразу было видно, что размер не совпадает с реальным, в программе же всё по-другому.

Да ты упоротый искатель говнокода. 2 строчки кода в main были написаны специально для ошибочной ситуации. Если ты этого не понимаешь, попроси объяснить своего «старшего».

Может мне весь проект скинуть и доступ на гитхаб дать? Все ведь начнуть разбираться и искать проблему.

В-третьих, ты ещё один пустослов

mrXorg
() автор топика
Ответ на: комментарий от legolegs

Я не пойму, чего у тебя так бомбит?

люблю бомбить, чё не нравится?

Есть программа, в ней ошибка, поэтому программа работает непредсказуемо.

привет кэп, ты где был?

Что не так-то? Чего тебе не нравится?

ты не нравишься, херню всякую постишь

mrXorg
() автор топика
Ответ на: комментарий от mrXorg

Чего-то скучно ты ответил, давай ещё раз попробуй.

legolegs ★★★★★
()
Ответ на: комментарий от emulek

давно я таких на ЛОРе не видел. Спасибо, развеселил.

слейся уже, клоун

А фотку с жопой всё равно не получишь

да не нужна мне целлюлитная жопа твоей жены нищеброд

mrXorg
() автор топика
Ответ на: комментарий от mrXorg

О, оскорбления пошли. Прекрасно. Ты не видержал и двух ответов в одну сторону без хамства. Слив засчитан.

false ★★★★★
()
Ответ на: комментарий от mrXorg

ты не нравишься, херню всякую постишь

едрить, вы на него посмотрите. не нравится он ему.

false ★★★★★
()
Ответ на: комментарий от mrXorg

слейся уже, клоун

скучно жеж.

да не нужна мне целлюлитная жопа твоей жены нищеброд

нет там никакого целлюлита, придурок.

emulek
()

Срочно царя в топик! Так над его любимым инструментом публично ещё ни кто не издевался!..

yyk ★★★★★
()
Ответ на: комментарий от false

О, оскорбления пошли. Прекрасно. Ты не видержал и двух ответов в одну сторону без хамства. Слив засчитан.

Лень идиотам объяснять что-либо

mrXorg
() автор топика
Ответ на: комментарий от mrXorg

Не хочешь ассертами обвешиваться используй инструменты для статического анализа кода: Flawfinder, RATS, splint.

Ах да, я забыл, что ты даже предупреждения компилятора игнорируешь, не говоря про всякий прочий инструментарий. Но тебя ведь предупреждали. Так что — ССЗБ.

anonymous
()
Ответ на: комментарий от mrXorg

И да, для особо одаренных, тема отмечена как решенная, слейтесь уже.

Малолетний говнюк, которого в реале мордой в говно макают, решил повысить свое ЧСВ сидя на форуме? Открою вам дурачку тайну - вы все глубже ныряете в говно.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

О, социопат объявился.

Правильно, что wota вас мордой в говно макнул.
Малолетний говнюк, которого в реале мордой в говно макают
вы все глубже ныряете в говно.

Так ты ещё и говнофоб оказывается. Весь лексикон из говна я смотрю состоит у тебя.

Открою вам дурачку тайну

Отрой лучше дверь своей конуры. Выйди на улицу. А то говном уже пропитался.

mrXorg
() автор топика

Эпичненько. Если это не троллинг такой, совет - научись принимать критику. Хотя тот последний абзац убертолст. Если ты пишешь так, что полагаешься на ub - стоит переосмыслить что-то в жизни. И вроде бы об этом даже в K&R написано.

wakuwaku ★★★★
()
Ответ на: комментарий от andreyu

Решил набрать в поиске «баг g++», потом «баг gcc». Угадайте, что я нашел? Не поверите. Наш гомофоб, тьфу говнофоб винит gcc, ставя точки с запятой где попало. А потом плачет, что компилятор ему не сообощил об ошибке. Компилятор создан не для криворуких просто. xcode3 а теперь мычит тут что-то ещё :D

Похоже нельзя работать, когда болен.

Ага, особенно когда гомофобией, тьфу, говнофобией

mrXorg
() автор топика
Ответ на: комментарий от wakuwaku

Если это не троллинг такой

Топик полностью серьезный. Особенно название темы. Я тут с умными людьми обсуждаю дворникофобию и говнофобию :D

mrXorg
() автор топика
Ответ на: комментарий от mrXorg

Ну кроме того азаца всё вполне приемлимо для вопроса. Читал наискосок правда.

wakuwaku ★★★★
()
Ответ на: комментарий от legolegs

У него UB, любой компилятор никому ничего не обязан.

Починил. А вообще, эти ваши сишечкопроблемы забавны.

buddhist ★★★★★
()
Ответ на: комментарий от wakuwaku

Если ты пишешь так, что полагаешься на ub - стоит переосмыслить что-то в жизни.

аборт делать уже поздно, увы.

emulek
()
Ответ на: комментарий от mrXorg

А потом плачет, что компилятор ему не сообощил об ошибке

в отличие от тебя, он изначально признавал, что что-то делает не так.

emulek
()
Ответ на: комментарий от buddhist

А вообще, эти ваши сишечкопроблемы забавны.

в сишечке есть только одно правило без исключений: если ты мудак, то это твоя проблема.

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

И главное — ведь в точку жеж, я действительно уже боюсь дворников, которые пишут код на сишке…

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.