From eda573ddf988b34799e4ac76779ed63a570454e0 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Tue, 15 Aug 2006 04:00:29 +0000 Subject: [PATCH] Okay, make the prose match the example too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29697 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/GetElementPtr.html | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/GetElementPtr.html b/docs/GetElementPtr.html index 49c3e6563a4..08d8006e459 100644 --- a/docs/GetElementPtr.html +++ b/docs/GetElementPtr.html @@ -78,12 +78,13 @@ AType* Foo; ... X = &Foo->F; -

it is natural to think that there is only one index, the constant value - 1. This results from C allowing you to treat pointers and arrays as - equivalent. LLVM doesn't. In this example, Foo is a pointer. That pointer must - be indexed. To arrive at the same address location as the C code, you would - provide the GEP instruction with two indices. The first indexes through the - pointer, the second index the element of the structure just as if it was:

+

it is natural to think that there is only one index, the selection of the + field F. However, in this example, Foo is a pointer. That + pointer must be indexed explicitly in LLVM. C, on the other hand, indexs + through it ransparently. To arrive at the same address location as the C + code, you would provide the GEP instruction with two index operands. The + first operand indexes through the pointer; the second operand indexes the + field F of the structure, just as if you wrote:

   X = &Foo[0].F;

Sometimes this question gets rephrased as:

-- 2.34.1