Есть необходимость выделить строки на стеке, что бы они не попадали в .rdata
В msvc компиле ранее делал так
char mas[] = {'s', 't', 'r', 'i', 'n', 'g', 0};
по итогу на стеке выделялось место под строку, и сама строка заполнялась кодом, посимвольно или блоками, но результат был тот, что мне нужен.
недавно попытался сделать то же самое в clang, и понял что этот трюк не прокатывает, массивы символов объединяются в строки и сохраняются в .data/.rdata
clang использую прямо в студии, не отдельно через консольку
может есть какие-то настройки, которые надо покрутить ?
с msvc компиле такой финт срабатывает на максимальных оптимизациях, и строка располагается на стеке, а с clang нет. отключать оптимизацию не вариант.
городить конструкции типа таких тоже не вариант:
char mas[7];
mas[0] = 's';
mas[1] = 't';
...........
mas[6] = 0;
В msvc компиле ранее делал так
char mas[] = {'s', 't', 'r', 'i', 'n', 'g', 0};
по итогу на стеке выделялось место под строку, и сама строка заполнялась кодом, посимвольно или блоками, но результат был тот, что мне нужен.
недавно попытался сделать то же самое в clang, и понял что этот трюк не прокатывает, массивы символов объединяются в строки и сохраняются в .data/.rdata
clang использую прямо в студии, не отдельно через консольку
может есть какие-то настройки, которые надо покрутить ?
с msvc компиле такой финт срабатывает на максимальных оптимизациях, и строка располагается на стеке, а с clang нет. отключать оптимизацию не вариант.
городить конструкции типа таких тоже не вариант:
char mas[7];
mas[0] = 's';
mas[1] = 't';
...........
mas[6] = 0;