Skip to content
  1. Jan 26, 2007
  2. Jan 25, 2007
  3. Jan 24, 2007
    • Chris Lattner's avatar
      Compile: · 8262560b
      Chris Lattner authored
      struct bork {
        int X[];
      };
      
      struct bink {
        struct bink a;
        int X[];  // ok.
      };
      
      to:
      t.c:3:7: error: flexible array 'X' not allowed in otherwise empty struct
        int X[];
            ^
      t.c:7:15: error: field 'a' has incomplete type
        struct bink a;
                    ^
      
      llvm-svn: 39295
      8262560b
    • Chris Lattner's avatar
      Enforce C99 6.7.2.1p2: · bdf8b8d2
      Chris Lattner authored
      t.c:5:8: error: field 'foo' declared as a function
        void foo();
             ^
      
      llvm-svn: 39294
      bdf8b8d2
    • Chris Lattner's avatar
      create field decl objects for the members of a struct/union. Diagnose code · 1300fb96
      Chris Lattner authored
      like:
      struct S { struct S {} X; };
      
      with:
      t.c:2:19: error: nested redefinition of 'struct'
      struct S { struct S {} X; };
                        ^
      t.c:2:1: error: previous definition is here
      struct S { struct S {} X; };
      ^
      
      llvm-svn: 39292
      1300fb96
  4. Jan 23, 2007
  5. Jan 22, 2007
  6. Jan 21, 2007
  7. Dec 04, 2006
  8. Dec 03, 2006
  9. Dec 02, 2006
    • Chris Lattner's avatar
      implement AST representation for function types with and without a prototype. · c6ad8131
      Chris Lattner authored
      This lets us pretty print stuff like this:
      
      void foo() {
        int X;
        X = sizeof(void (*(*)())());
        X = sizeof(int(*)(int, float, ...));
        X = sizeof(void (*(int arga, void (*argb)(double Y)))(void* Z));
      
      as:
      
        X = sizeof(void (*(*)())())
        X = sizeof(int (*)(int, float, ...))
        X = sizeof(void (*(int, void (*)(double)))(void *))
      
      Ah the wonders of 'modern' C syntax!
      
      llvm-svn: 39232
      c6ad8131
Loading