On 06/02/14 08:24, Martin Liška wrote:
On 05/30/2014 06:37 PM, Jeff Law wrote:
On 05/30/14 00:49, Martin Liška wrote:
Hi,
this patch introduces a new function lookup_attribute_starting that
can find all attributes starting with a specified string. Purpose of the
function is to be able to identify e.g. if a function has any 'omp'
attribute.
Bootstrapped and tested on x86_64-linux.
OK for trunk?
Thanks,
Martin
2014-05-29 Martin Liska <mli...@suse.cz>
* tree.h (private_lookup_attribute_starting): New function.
(lookup_attribute_starting): Likewise.
* tree.c (private_lookup_attribute_starting): Likewise.
private_lookup_attribute_starting needs a block comment.
Added.
+tree
+private_lookup_attribute_starting (const char *attr_name, size_t
attr_len, tree list)
Long line needs to be wrapped? Please review the patch for lines
that need wrapping at 80 columns.
Fixed too.
So it's really a lookup by prefix, so I'd probably use a name like
lookup_attribute_by_prefix. Why "private_" in the function name?
I used the same construction as for function 'private_is_attribute_p'; I
hope the construction is fine?
Ah. OK.
It appears it just returns the first attribute from LIST with the
given prefix. Presumably you use it iteratively.
+/* Given an attribute name ATTR_NAME and a list of attributes LIST,
+ return a pointer to the attribute's list element if the attribute
+ starts with ATTR_NAME. ATTR_NAME must be in the form 'text' (not
+ '__text__'). */
+
+static inline tree
+lookup_attribute_starting (const char *attr_name, tree list)
+{
+ gcc_checking_assert (attr_name[0] != '_');
+ /* In most cases, list is NULL_TREE. */
+ if (list == NULL_TREE)
+ return NULL_TREE;
+ else
+ return private_lookup_attribute_starting (attr_name, strlen
(attr_name), list);
+}
So again, I prefer "prefix" rather than "starting". Similarly this is
meant to be called iteratively since you only get the first attribute
with the given prefix, right?
I added a comment that it returns just such first argument.
Is the reworked patch OK for trunk?
Yes. Thanks for the tweaks.
jeff