|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| | so roll it out.
llvm-svn: 134638 | 
| | 
| 
| 
| 
| 
| | function. Fixes PR10233!
llvm-svn: 134634 | 
| | 
| 
| 
| | llvm-svn: 130720 | 
| | 
| 
| 
| 
| 
| 
| 
| | at -O0. The only change from the previous patch is that we don't try
to generate virtual method thunks for an available_externally
function.
llvm-svn: 108230 | 
| | 
| 
| 
| | llvm-svn: 108194 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | -O0, since we won't be using the definitions for anything anyway. For
lib/System/Path.o when built in Debug+Asserts mode, this leads to a 4%
improvement in compile time (and suppresses 440 function bodies).
<rdar://problem/7987644>
llvm-svn: 108156 | 
| | 
| 
| 
| 
| 
| 
| | clang ' or ' clang -cc1 ' or ' clang-cc ' in test lines (by substituting them to
garbage).
llvm-svn: 91460 | 
| | 
| 
| 
| 
| 
| | - 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious.
llvm-svn: 86430 | 
| | 
| 
| 
| 
| 
| 
| 
| | generated for an inline function definition, taking into account C99
and GNU inline/extern inline semantics. This solution is simpler,
cleaner, and fixes PR4536.
llvm-svn: 81670 | 
| | 
| 
| 
| | llvm-svn: 76638 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| | multiple declarations of the function. Should fix PR3989 and
<rdar://problem/6818429>.
llvm-svn: 69905 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | extern.  Previously we would warn about it and ignore the attribute.
This is incorrect, it should be handled as a c89 "extern inline" 
function.  Many thanks to Matthieu Castet for pointing this out and
beating me over the head until I got it.
PR3988: extern inline function are not externally visible
llvm-svn: 69756 | 
| | 
| 
| 
| 
| 
| | PR4023
llvm-svn: 69618 | 
| | 
| 
| 
| 
| 
| 
| 
| | C99 mode.  This is a regression from an earlier patch of mine.
This also simplifies the linkage enums a bit.
llvm-svn: 69069 | 
| | 
| 
| 
| 
| 
| 
| 
| | pulling some attribute munging stuff into GetLinkageForFunction.
This should fix PR3986
llvm-svn: 69045 | 
| | 
| 
| 
| 
| 
| | not in c89 mode).
llvm-svn: 69032 | 
|  | llvm-svn: 69030 |