Skip to content
  1. Feb 19, 2009
  2. Feb 18, 2009
  3. Feb 17, 2009
  4. Feb 16, 2009
  5. Feb 15, 2009
  6. Feb 14, 2009
    • Mike Stump's avatar
      Use getNameAsCString instead of getNameAsString and reflow the type. · 0e7d7b68
      Mike Stump authored
      Thanks Anders.
      
      llvm-svn: 64571
      0e7d7b68
    • Mike Stump's avatar
      Generate the helper function for blocks. Now basic codegen is · 2d5a2878
      Mike Stump authored
      starting to work for blocks.
      
      llvm-svn: 64570
      2d5a2878
    • Fariborz Jahanian's avatar
      Fixed a bad ir-gen bug which caused a dejagnu test to fail. · 35afdfc3
      Fariborz Jahanian authored
      Now we are pretty close to be in sync with objc's classic 
      abi when it comes to passing dejagnu objc executable tests.
      
      llvm-svn: 64569
      35afdfc3
    • Fariborz Jahanian's avatar
      Fixed a problem caused by foreward @class use · 99bed6fd
      Fariborz Jahanian authored
      which consequently caused a Seg fault. during meta-data
      generation. It also addresses an issue related to
      late binding of newly synthesize ivars (when we support it).
      
      llvm-svn: 64563
      99bed6fd
    • Douglas Gregor's avatar
      Add hook to add attributes to function declarations that we know · e711f705
      Douglas Gregor authored
      about, whether they are builtins or not. Use this to add the
      appropriate "format" attribute to NSLog, NSLogv, asprintf, and
      vasprintf, and to translate builtin attributes (from Builtins.def)
      into actual attributes on the function declaration.
      
      Use the "printf" format attribute on function declarations to
      determine whether we should do format string checking, rather than
      looking at an ad hoc list of builtins and "known" function names.
      
      Be a bit more careful about when we consider a function a "builtin" in
      C++.
      
      llvm-svn: 64561
      e711f705
    • Daniel Dunbar's avatar
      x86_64 ABI: Need to use canonical types when comparing against · 3d88672f
      Daniel Dunbar authored
      ASTContext types.
      
      llvm-svn: 64533
      3d88672f
    • Daniel Dunbar's avatar
      x86_64 ABI: Pass simple types directly when possible. This is · 019ef0bb
      Daniel Dunbar authored
      important for both keeping the generated LLVM simple and for ensuring
      that integer types are passed/promoted correctly.
      
      llvm-svn: 64529
      019ef0bb
    • Douglas Gregor's avatar
      Make it possible for builtins to expression FILE* arguments, so that · 538c3d84
      Douglas Gregor authored
      we can define builtins such as fprintf, vfprintf, and
      __builtin___fprintf_chk. Give a nice error message when we need to
      implicitly declare a function like fprintf.
      
      llvm-svn: 64526
      538c3d84
    • Chris Lattner's avatar
      fix rdar://6586493, a bug in codegen of the GNU · cd7bc144
      Chris Lattner authored
      missing-?:-true-value extension.
      
      llvm-svn: 64505
      cd7bc144
    • Douglas Gregor's avatar
      Implicitly declare certain C library functions (malloc, strcpy, memmove, · b9063fc1
      Douglas Gregor authored
      etc.) when we perform name lookup on them. This ensures that we
      produce the correct signature for these functions, which has two
      practical impacts:
      
        1) When we're supporting the "implicit function declaration" feature
        of C99, these functions will be implicitly declared with the right
        signature rather than as a function returning "int" with no
        prototype. See PR3541 for the reason why this is important (hint:
        GCC always predeclares these functions).
       
        2) If users attempt to redeclare one of these library functions with
        an incompatible signature, we produce a hard error.
      
      This patch does a little bit of work to give reasonable error
      messages. For example, when we hit case #1 we complain that we're
      implicitly declaring this function with a specific signature, and then
      we give a note that asks the user to include the appropriate header
      (e.g., "please include <stdlib.h> or explicitly declare 'malloc'"). In
      case #2, we show the type of the implicit builtin that was incorrectly
      declared, so the user can see the problem. We could do better here:
      for example, when displaying this latter error message we say
      something like:
      
        'strcpy' was implicitly declared here with type 'char *(char *, char
        const *)'
      
      but we should really print out a fake code line showing the
      declaration, like this:
      
        'strcpy' was implicitly declared here as:
      
          char *strcpy(char *, char const *)
      
      This would also be good for printing built-in candidates with C++
      operator overloading.
      
      The set of C library functions supported by this patch includes all
      functions from the C99 specification's <stdlib.h> and <string.h> that
      (a) are predefined by GCC and (b) have signatures that could cause
      codegen issues if they are treated as functions with no prototype
      returning and int. Future work could extend this set of functions to
      other C library functions that we know about.
      
      llvm-svn: 64504
      b9063fc1
Loading