<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Wrong location for Objective-C message call argument"
   href="http://llvm.org/bugs/show_bug.cgi?id=16392">16392</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Wrong location for Objective-C message call argument
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>-New Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>martins.mozeiko@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Following code sample has wrong argument location in AST.

struct RR
{
    int i;
};
typedef struct RR RR;

@interface KK
{
}

- (void) init: (RR)arg;

@end

void foo()
{
    RR z;

    KK* k;
    [k init:z];
}

When dumping AST using commandline "clang -cc1 -x objective-c++ -ast-dump
test.mm" you get following tree (I'm showing only part of it):

    `-ObjCMessageExpr 0x1a1558 <line:20:5, col:14> 'void' selector=init:
      |-ImplicitCastExpr 0x1a1390 <col:6> 'KK *' <LValueToRValue>
      | `-DeclRefExpr 0x1a1360 <col:6> 'KK *' lvalue Var 0x1a1320 'k' 'KK *'
      `-CXXConstructExpr 0x1a1450 <col:8, col:13> 'RR':'struct RR' 'void (const
struct RR &) throw()'
        `-ImplicitCastExpr 0x1a13a0 <col:13> 'const struct RR' lvalue <NoOp>
          `-DeclRefExpr 0x1a1378 <col:13> 'RR':'struct RR' lvalue Var 0x1a10b0
'z' 'RR':'struct RR'

It says that CXXConstructExpr begins at column 8, while it should begin at
column 13.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>