| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
+ ctor type or a CXXDestructorDecl + dtor type.
llvm-svn: 70962
|
|
|
|
| |
llvm-svn: 70789
|
|
|
|
| |
llvm-svn: 70786
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
multiple declarations of the function. Should fix PR3989 and
<rdar://problem/6818429>.
llvm-svn: 69905
|
|
|
|
|
|
|
|
|
|
|
| |
methods, class methods, and property implementations) and instead
place all of these entities into the DeclContext.
This eliminates more linear walks when looking for class or instance
methods and should make PCH (de-)serialization of ObjCDecls trivial
(and lazy).
llvm-svn: 69849
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This has pros and cons, but for now the pros seem to significantly
outway the con.
The con is that we will always need to cast in the runtime
implementation to a struct type, if we wish to access an interface
directly.
The pros are:
- Avoid the cost of generating types which are used. Most
manipulation of Objective-C objects is done through messages, and
only the implementation of a class will directly access
memory. Previously, we would convert the type even if it only
appear as a function parameter, for example.
- We don't need to worry about incomplete types, and
UpdateCompletedType for interfaces is gone.
- It becomes easier to narrow the interface to the shadow struct for
Objective-C interfaces (so it can be eliminated).
Currently the runtimes still use the CodeGenTypes machinery to
generate the LLVM structure they need via ConvertTagDecl, but this can
eventually be replaced.
llvm-svn: 69797
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
functions
llvm-svn: 69699
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tentative definitions off to the ASTConsumer at the end of the
translation unit.
Eliminate CodeGen's internal tracking of tentative definitions, and
instead hook into ASTConsumer::CompleteTentativeDefinition. Also,
tweak the definition-deferal logic for C++, where there are no
tentative definitions.
Fixes <rdar://problem/6808352>, and will make it much easier for
precompiled headers to cope with tentative definitions in the future.
llvm-svn: 69681
|
|
|
|
|
|
| |
PR4023
llvm-svn: 69618
|
|
|
|
| |
llvm-svn: 69545
|
|
|
|
|
|
| |
will talk to steve.
llvm-svn: 69519
|
|
|
|
|
|
|
|
| |
lazy PCH deserialization. Propagate that argument wherever it needs to
be. No functionality change, except that I've tightened up a few PCH
tests in preparation.
llvm-svn: 69406
|
|
|
|
|
|
| |
by anything yet.
llvm-svn: 69343
|
|
|
|
|
|
|
| |
- <rdar://problem/6800351> clang not producing correct large struct
return code for Blocks
llvm-svn: 69337
|
|
|
|
|
|
| |
when generating a common definition.
llvm-svn: 69287
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- PR3980.
- <rdar://problem/6762287> [irgen] crash when generating tentative
definition of incomplete structure
- This also avoids creating common definitions for things which are
later overwritten.
- XFAIL'ed external-defs.c, it isn't completing types properly yet.
llvm-svn: 69231
|
|
|
|
| |
llvm-svn: 69168
|
|
|
|
| |
llvm-svn: 69091
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Pull out SetCommonAttributes, which handles the things common to
aliases, methods, functions, and variables.
- Pull out SetLLVMFunctionAttributesForDefinition, which handles the
LLVM attributes which we only want to apply to a definition (like
noinline and alwaysinline).
- Kill SetGVDeclarationAttributes (inlined into SetFunctionAttributes
and specialized).
- Kill SetFunctionAttributesForDefinition (inlined into sole caller).
- Inline SetGVDefinitionAttributes into SetMethodAttributes and
specialize.
- Rename SetGVDefinitionAttributes to SetFunctionDefinitionAttributes.
This is supposed to be a no functionality change commit, but I may
have made a mistake.
llvm-svn: 69036
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 69035
|
|
|
|
|
|
|
| |
disambiguate it.
- No functionality change.
llvm-svn: 69034
|
|
|
|
| |
llvm-svn: 69033
|
|
|
|
|
|
| |
not in c89 mode).
llvm-svn: 69032
|
|
|
|
|
|
|
| |
inlined for some reason, then we don't want a strong or even weak
definition.
llvm-svn: 69031
|
|
|
|
| |
llvm-svn: 69030
|
|
|
|
| |
llvm-svn: 69029
|
|
|
|
| |
llvm-svn: 69028
|
|
|
|
| |
llvm-svn: 69027
|
|
|
|
| |
llvm-svn: 69026
|
|
|
|
| |
llvm-svn: 69025
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 68987
|
|
|
|
| |
llvm-svn: 68982
|
|
|
|
|
|
|
|
| |
== conversionOK && "UTF-8 to UTF-16 conversion failed"), function GetAddrOfConstantCFString, file CodeGenModule.cpp, line 1063.
Still a diagnostic related FIXME (will discuss with Daniel/Fariborz offline).
llvm-svn: 68975
|
|
|
|
|
|
|
|
| |
their emission was deferred.
- <rdar://problem/6775234> variables with internal linkage should not
be exposed with -fvisibility=hidden.
llvm-svn: 68818
|
|
|
|
| |
llvm-svn: 68755
|
|
|
|
|
|
| |
No functionality change (really).
llvm-svn: 68726
|
|
|
|
|
|
| |
when the destination has a reference type. (No functionality change yet)
llvm-svn: 68593
|
|
|
|
| |
llvm-svn: 68561
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Changed method names to match gcc (categories names still aren't
mangled in).
- Expose correct name for class and metadata symbols (although
-fvisibility=hidden isn't yet correct).
- Remove several things from llvm.used that didn't need to be there
(I suspect this can still be trimmed).
- Don't use asm-prefix extension for _objc_empty_{cache,vtable} (not
needed).
- Hide EH type class info with -fvisibility=hidden
- Change setGlobal[Option]Visibility to not change the visibility of
functions with internal linkage.
llvm-svn: 68510
|
|
|
|
| |
llvm-svn: 68425
|
|
|
|
| |
llvm-svn: 68414
|
|
|
|
| |
llvm-svn: 68379
|
|
|
|
| |
llvm-svn: 68369
|
|
|
|
|
|
| |
string literals.
llvm-svn: 68363
|
|
|
|
| |
llvm-svn: 68300
|
|
|
|
|
|
|
|
|
|
| |
- Finish up support for converting UTF8->UTF16 to support ObjC @"string" constants.
Remove warning from CheckObjCString.
As the FIXME in the test case indicates, I still have a bug to work out (apparently with \u handling).
llvm-svn: 68245
|