[cfe-commits] r41671 - in /cfe/trunk: Sema/Sema.h Sema/SemaDecl.cpp Sema/SemaExpr.cpp test/Sema/array-init.c

Bill Wendling isanbard at gmail.com
Mon Sep 17 01:52:06 PDT 2007


Hi Steve,

It looks as if Sema::CheckAssignmentConstraints doesn't strip off the  
reference before doing the checking. However, I don't know if this is  
the correct place (I've lost track of what you guys are doing w.r.t.  
initialization checks). Do you think this is the best place or should  
it go somewhere else?

-bw

On Sep 1, 2007, at 7:04 PM, Steve Naroff wrote:

> Author: snaroff
> Date: Sat Sep  1 21:04:30 2007
> New Revision: 41671
>
> URL: http://llvm.org/viewvc/llvm-project?rev=41671&view=rev
> Log:
>
> Start implementing semantic analysis for C initializers.
>
> Step 1: Start instantiating InitListExpr's.
> Step 2: Call newly added function Sema::CheckInitializer() from  
> Sema::ParseDeclarator().
> Step 3: Give InitListExpr's a preliminary type.
> Step 4: Start emitting diagnostics for simple assignments.
>
> Note:
>
> As a result of step 1, the CodeGen/mandel.c test asserts  
> "Unimplemented agg expr!", which is expected.
>
> As a result of step 4, the test below now fails. This isn't  
> expected and needs to be investigated (it appears type checking for  
> C++ references is flawed in some way).
>
> ******************** TEST 'Sema/cxx-references.cpp' FAILED!  
> ********************
> Command:
>  clang -fsyntax-only Sema/cxx-references.cpp
> Output:
> Sema/cxx-references.cpp:8:12: warning: incompatible pointer types  
> assigning 'int &*' to 'int *'
>   int *p = &r;
>            ^~
> Sema/cxx-references.cpp:10:20: error: incompatible types assigning  
> 'int (int)' to 'int (&)(int)'
>   int (&rg)(int) = g;
>                    ^
> Sema/cxx-references.cpp:13:18: error: incompatible types assigning  
> 'int [3]' to 'int (&)[3]'
>   int (&ra)[3] = a;
>                  ^
> Sema/cxx-references.cpp:16:14: error: incompatible types assigning  
> 'int *' to 'int *&'
>   int *& P = Q;
>              ^
> 4 diagnostics generated.
> ******************** TEST 'Sema/cxx-references.cpp' FAILED!  
> ********************




More information about the cfe-commits mailing list