# [cfe-commits] [PATCH] libclang: Exposing more statement, expression and declaration types.

Manuel Holtgrewe manuel.holtgrewe at fu-berlin.de
Fri Sep 30 15:27:11 CDT 2011

Am 30.09.2011 um 16:51 schrieb Douglas Gregor:

>
> On Sep 29, 2011, at 12:28 AM, Manuel Holtgrewe wrote:
>
>>
>> Hopefully, I hope that I addressed all of your points in the
>> attached patch.
>
> The patch looks generally fine, but you'll also need to update the
> test cases in test/Index (it's tedious, I know). A few minor comments:

Thanks for pointing that out.

> +  /** \brief A predefined identifier such as __func__.
> +   */
> +  CXCursor_PredefinedExpr                = 106,
>
> I don't think we want to expose this.

OK

> +  /** \brief This represents access to specific elements of a
> vector, and
> +   * may occur on the left hand side or right hand side.
> +   *
> +   * For example the following is legal: "V.xy = V.zw" if V is a 4
> element
> +   * extended vector.
> +   */
> +  CXCursor_ExtVectorElementExpr          = 120,
> +
>
> ExtVectorElementExpr is a terrible name for a public API :(

Hm, should we maybe not expose this at all? Or maybe as
"GCCVectorElementExpr"?

> +  /** \brief Represents a C99 designated initializer expression.
> +   */
> +  CXCursor_DesignatedInitExpr            = 122,
>
> I'd rather not expose this at all, since a "designated initializer
> expression" isn't a notion that exists in C.
>
> +  /** \brief VAArgExpr, used for the builtin function
> __builtin_va_arg.
> +   */
> +  CXCursor_VAArgExpr                     = 123,
>
> This is an implementation detail, and should not be exposed.
>
> +  /** \brief Represents a C++ pseudo-destructor (C++ [expr.pseudo]).
> +   */
> +  CXCursor_CXXPseudoDestructorExpr       = 140,
>
> Should this "just" be a member expression? The syntax is the same.

OK to all others.