Fariborz Jahanian
4127b8ef97
Added support for static variables which require
...
initialization before main. Fixes pr5396.
llvm-svn: 86145
2009-11-05 18:03:03 +00:00
Douglas Gregor
b7e5c847c4
Implement proper linkage for explicit instantiation declarations of
...
inlined functions. For example, given
template<typename T>
class string {
unsigned Len;
public:
unsigned size() const { return Len; }
};
extern template class string<char>;
we now give the instantiation of string<char>::size
available_externally linkage (if it is ever instantiated!), as
permitted by the C++0x standard.
llvm-svn: 85340
2009-10-27 23:26:40 +00:00
Douglas Gregor
583dcafce4
Introduce FunctionDecl::isInlined() to tell whether a function should
...
be inlined.
llvm-svn: 85307
2009-10-27 21:11:48 +00:00
Douglas Gregor
35b5753e17
Rename FunctionDecl::isInline/setInline to
...
FunctionDecl::isInlineSpecified/setInlineSpecified.
llvm-svn: 85305
2009-10-27 21:01:01 +00:00
Anders Carlsson
29295bff61
Add a PrettyStackTraceDecl in CodeGenModule::EmitGlobalDefinition.
...
llvm-svn: 85237
2009-10-27 14:32:27 +00:00
Douglas Gregor
e0105ad38b
assert -> llvm_unreachable
...
llvm-svn: 85125
2009-10-26 16:27:58 +00:00
Daniel Dunbar
2c422dc9ca
Move clients to use IdentifierInfo::getNameStart() instead of getName()
...
llvm-svn: 84436
2009-10-18 20:26:12 +00:00
Douglas Gregor
819c3ddda8
Fix a thinko that John pointed out
...
llvm-svn: 84142
2009-10-14 21:36:34 +00:00
Douglas Gregor
3cc3cdeea9
Give explicit and implicit instantiations of static data members of
...
class templates the proper linkage.
Daniel, please look over the CodeGenModule bits.
llvm-svn: 84140
2009-10-14 21:29:40 +00:00
Devang Patel
f33cfaf760
Copy metadata associated with CI
...
llvm-svn: 84114
2009-10-14 17:03:29 +00:00
Chris Lattner
4f8a2e22c0
fix some cfstring related issues:
...
1) -fwritable-string does affect the non-utf16 version of cfstrings
just not the utf16 ones.
2) utf16 strings should always be marked constant, as the __TEXT segment
is readonly.
3) The name of the global doesn't matter, remove it from TargetInfo.
4) Trust the asmprinter to drop cstrings into the right section, like llvmgcc does now.
This fixes rdar://7115750
llvm-svn: 84077
2009-10-14 05:55:45 +00:00
Chris Lattner
734351d214
unbreak test/CodeGen/builtins.c, reverting Devang's change.
...
llvm-svn: 84075
2009-10-14 05:49:21 +00:00
Devang Patel
3b3f0f6b65
Check void type before using replaceAllUsesWith().
...
llvm-svn: 84050
2009-10-13 22:59:11 +00:00
Devang Patel
9f73552852
Remove extra white space line.
...
llvm-svn: 83979
2009-10-13 17:02:38 +00:00
Devang Patel
7468489deb
Do not check use_empty() before invoking replaceAllUsesWith().
...
Let replaceAllUsesWith() adjust VHs even though there are no uses.
llvm-svn: 83978
2009-10-13 17:02:04 +00:00
Benjamin Kramer
abd5b90e4c
Simplify pointer creation with the new Type::getInt*Ptr methods.
...
llvm-svn: 83964
2009-10-13 10:07:13 +00:00
Anders Carlsson
2bb27f53e0
Move the vtable builder to CGVtable.cpp, general cleanup.
...
llvm-svn: 83798
2009-10-11 22:13:54 +00:00
Anders Carlsson
a18ed9b113
If a global initializer has a non-trivial constructor or destructor, we never want to defer generation of it, even if it is declared static.
...
With this change we're finally able to compile and run the (infamous)
#include <string>
#include <iostream>
int main(int argc, char **argv) {
std::cout << "Hello, World" << std::endl;
}
$ clang hello.cpp -lstdc++ -o hello
$ ./hello
Hello, World
llvm-svn: 83559
2009-10-08 17:28:59 +00:00
Anders Carlsson
ff971e8bf4
Add a MangleContext and pass it to all mangle functions. It will be used for keeping state, such as identifiers assigned to anonymous structs as well as scope encoding.
...
llvm-svn: 83442
2009-10-07 01:06:45 +00:00
Mike Stump
916c006735
Fix thinko and simplify.
...
llvm-svn: 83342
2009-10-05 23:08:21 +00:00
Mike Stump
3472ae5bac
Ensure we have atleast 2-byte alignment for member functions.
...
llvm-svn: 83337
2009-10-05 22:49:20 +00:00
Mike Stump
c5e153c50e
Respect alignments better.
...
llvm-svn: 83328
2009-10-05 21:58:44 +00:00
Benjamin Kramer
dde0fee82e
Use new predicates for some type equality tests.
...
llvm-svn: 83303
2009-10-05 13:47:21 +00:00
John McCall
4fa5342758
Anonymous namespaces, sema + codegen. A lot of semantics are still broken,
...
apparently because using directives aren't quite working correctly.
llvm-svn: 83184
2009-10-01 00:25:31 +00:00
Anders Carlsson
649a17e861
Handle namespace aliases.
...
llvm-svn: 82644
2009-09-23 19:19:16 +00:00