Skip to content
  1. Sep 04, 2007
  2. Sep 03, 2007
  3. Sep 02, 2007
    • Steve Naroff's avatar
      · b03f5940
      Steve Naroff authored
      More progress on array initializers.
      
      - Added Expr::isConstantExpr().
      - Added type checking for InitListExpr elements.
      - Added diagnostic for trying to initialize a variable sized object.
      
      llvm-svn: 41674
      b03f5940
    • Steve Naroff's avatar
      More semantic analysis of initializers. · f33527a1
      Steve Naroff authored
      Added 2 errors and one warning, updated test case.
      
      llvm-svn: 41672
      f33527a1
    • Steve Naroff's avatar
      · 2fea1392
      Steve Naroff authored
      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! ********************
      
      llvm-svn: 41671
      2fea1392
  4. Sep 01, 2007
  5. Aug 31, 2007
Loading