Clang uninitialized data

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by sn0w, 15 Oct 2014.

  1. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,309
    Reputations:
    327
    Code:
    #define NUM_ELEMENTS	1024*1024*32
    void *pArray[NUM_ELEMENTS] ;
    инициализаторов нет, так что
    студийный компилер все сделает правильно, и увеличит VisrtualSize секции данных на 32 мега.

    сланг же в этом случае нафигачит 32 метра сырых нулей в файл.
    но если указать
    void *pArray[NUM_ELEMENTS] __attribute__ ((section (".bss"))); - то он сделает все так же как и студийный, т.е. просто увеличит виртуальный размер.

    но мне нужно вытащить этот буфер в другую секцию, на уровне исходного кода разумеется, на студии я могу сделать так:

    #pragma bss_seg(".MySeg")
    void *pArray[NUM_ELEMENTS];
    #pragma bss_seg()

    как тоже самое провернуть в сланге?