[lld] r228381 - [Core] Update ContentPermissions

Shankar Easwaran shankare at codeaurora.org
Fri Feb 6 12:18:49 PST 2015


Hi,

The permission enums in the DefinedAtom could no more be a bitmask.

The writer could create a map of the enum variables to the exact bit 
representation that the format cares about.

Shankar Easwaran

On 2/6/2015 1:41 PM, Rui Ueyama wrote:
> I don't get it. What do you mean by "all permissions map need to be done in
> the writer"? Is that related to making the permission enums non-bitmask?
>
> On Fri, Feb 6, 2015 at 6:58 AM, Shankar Easwaran <shankare at codeaurora.org>
> wrote:
>
>> Reverted this patch. I think all the permissions map need to be done in
>> the writer.
>>
>>
>> On 2/5/2015 11:48 PM, Rui Ueyama wrote:
>>
>>> This needed a pre-commit review. Obviously they are bitmasks just like
>>> Unix
>>> file permission. Not sure we want to lose that characteristic.
>>>
>>> On Thu, Feb 5, 2015 at 9:29 PM, Shankar Easwaran <shankare at codeaurora.org
>>> wrote:
>>>
>>>   Author: shankare
>>>> Date: Thu Feb  5 23:29:49 2015
>>>> New Revision: 228381
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=228381&view=rev
>>>> Log:
>>>> [Core] Update ContentPermissions
>>>>
>>>> The values are already arranged in ascending order, and all tests still
>>>> pass.
>>>>
>>>> Removing the values as its confusing when new enumerations need to be
>>>> added.
>>>>
>>>> Modified:
>>>>       lld/trunk/include/lld/Core/DefinedAtom.h
>>>>
>>>> Modified: lld/trunk/include/lld/Core/DefinedAtom.h
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/
>>>> Core/DefinedAtom.h?rev=228381&r1=228380&r2=228381&view=diff
>>>>
>>>> ============================================================
>>>> ==================
>>>> --- lld/trunk/include/lld/Core/DefinedAtom.h (original)
>>>> +++ lld/trunk/include/lld/Core/DefinedAtom.h Thu Feb  5 23:29:49 2015
>>>> @@ -157,14 +157,14 @@ public:
>>>>      // important, because the layout pass may sort atoms by permission if
>>>> other
>>>>      // attributes are the same.
>>>>      enum ContentPermissions {
>>>> -    perm___  = 0,           // mapped as unaccessible
>>>> -    permR__  = 8,           // mapped read-only
>>>> -    permRW_  = 8 + 2,       // mapped readable and writable
>>>> -    permRW_L = 8 + 2 + 1,   // initially mapped r/w, then made read-only
>>>> -                            // loader writable
>>>> -    permR_X  = 8 + 4,       // mapped readable and executable
>>>> -    permRWX  = 8 + 2 + 4,   // mapped readable and writable and
>>>> executable
>>>> -    permUnknown = 16        // unknown or invalid permissions
>>>> +    perm___,           // mapped as unaccessible
>>>> +    permR__,           // mapped read-only
>>>> +    permRW_,           // mapped readable and writable
>>>> +    permRW_L,           // initially mapped r/w, then made read-only
>>>> +                        // loader writable
>>>> +    permR_X,            // mapped readable and executable
>>>> +    permRWX,            // mapped readable and writable and executable
>>>> +    permUnknown         // unknown or invalid permissions
>>>>      };
>>>>
>>>>      enum SectionChoice {
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>
>>>>
>> --
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
>> by the Linux Foundation
>>
>>


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation




More information about the llvm-commits mailing list