aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/InitPreprocessor.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2013-11-27 21:34:16 +0000
committerRui Ueyama <ruiu@google.com>2013-11-27 21:34:16 +0000
commit615b200cc24ce53812783e79e24c6b2596654cc9 (patch)
tree277f367433f135c987f54a94817b24e6308e239b /clang/lib/Frontend/InitPreprocessor.cpp
parent175e7a8c977e34d9f0ae45dc73e5b963f63aed51 (diff)
downloadllvm-615b200cc24ce53812783e79e24c6b2596654cc9.zip
llvm-615b200cc24ce53812783e79e24c6b2596654cc9.tar.gz
llvm-615b200cc24ce53812783e79e24c6b2596654cc9.tar.bz2
[PECOFF] Improve /merge option handling.
/MERGE option is a bit complicated for many reasons. Firstly, it takes both positive and negative arguments. That means we have to have one of three distinctive values (set, clear or unchange) for each permission bit. In this patch we represent the three values using two bitmasks. Secondly, the permissions specified by the parameter is bitwise or-ed with the default permissions of a section. There is an exception for that rule; if one of READ, WRITE or EXECUTE bit is specified, unspecified bits need to be cleared. (So if you specify only WRITE for example, the resulting section will not have WRITE nor EXECUTE bits.) Lastly, multiple /merge options are allowed. llvm-svn: 195882
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
0 files changed, 0 insertions, 0 deletions