Skip to content
  1. May 04, 2009
  2. May 03, 2009
  3. May 01, 2009
  4. Apr 30, 2009
  5. Apr 28, 2009
    • Douglas Gregor's avatar
      Improve compatibility with GCC regarding inline semantics in GNU89 · 76fe50c6
      Douglas Gregor authored
      mode and in the presence of __gnu_inline__ attributes. This should fix
      both PR3989 and PR4069.
      
      As part of this, we now keep track of all of the attributes attached
      to each declaration even after we've performed declaration
      merging. This fixes PR3264.
      
      llvm-svn: 70292
      76fe50c6
    • Eli Friedman's avatar
      Simplify the scheme used for keywords, and change the classification · 2b680b43
      Eli Friedman authored
      scheme to be more useful.
      
      The new scheme introduces a set of categories that should be more 
      readable, and also reflects what we want to consider as an extension 
      more accurately.  Specifically, it makes the "what is a keyword" 
      determination accurately reflect whether the keyword is a GNU or 
      Microsoft extension.
      
      I also introduced separate flags for keyword aliases; this is useful 
      because the classification of the aliases is mostly unrelated to the 
      classification of the original keyword.
      
      This patch treats anything that's in the implementation 
      namespace (prefixed with "__", or "_X" where "X" is any upper-case 
      letter) as a keyword without marking it as an extension.  This is 
      consistent with the standards in that an implementation is allowed to define 
      arbitrary extensions in the implementation namespace without violating 
      the standard. This gets rid of all the nasty "extension used" warnings 
      for stuff like __attribute__ in -pedantic mode.  We still warn for 
      extensions outside of the the implementation namespace, like typeof.
      If someone wants to implement -Wextensions or something like that, we 
      could add additional information to the keyword table.
      
      This also removes processing for the unused "Boolean" language option; 
      such an extension isn't supported on any other C implementation, so I 
      don't see any point to adding it.
      
      The changes to test/CodeGen/inline.c are required because previously, we 
      weren't actually disabling the "inline" keyword in -std=c89 mode.
      
      I'll remove Boolean and NoExtensions from LangOptions in a follow-up 
      commit.
      
      llvm-svn: 70281
      2b680b43
  6. Apr 27, 2009
  7. Apr 26, 2009
  8. Apr 25, 2009
  9. Apr 23, 2009
  10. Apr 22, 2009
  11. Apr 21, 2009
  12. Apr 20, 2009
  13. Apr 19, 2009
  14. Apr 18, 2009
  15. Apr 17, 2009
  16. Apr 16, 2009
  17. Apr 15, 2009
Loading