The relevant MSDN docs: http://msdn.microsoft.com/en-us/library/1dc22465.aspx The grammar: #pragma const_seg( [ [ { push | pop}, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] ) This is important because it's used to register initializers and finalizers similar to __attribute__((section(".init_array"))) in ELF. David says that we'll have to extend LLVM IR to encode the section properties such as readonly, executable, initialized, etc.
Looks like we also need init_seg to avoid unwanted finalizers: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/wtf/StaticConstructors.h&q=init_seg&sq=package:chromium&type=cs&l=49
Warren implemented most of these back in r205810. I implemented #pragma init_seg in r213593, but the code in Blink turned out to be bogus anyway because it was declaring a const globals without a user-declared constructor. We ended up rewriting the Blink code to use statically initialized const references to some uninitialized storage.
(In reply to comment #2) > Warren implemented most of these back in r205810. > > I implemented #pragma init_seg in r213593, but the code in Blink turned out > to be bogus anyway because it was declaring a const globals without a > user-declared constructor. We ended up rewriting the Blink code to use > statically initialized const references to some uninitialized storage. Really closing...