Commit Graph

16962 Commits

Author SHA1 Message Date
Chris Lattner 5e71d43155 adjust for a pending LLVM change.
llvm-svn: 85373
2009-10-28 05:12:07 +00:00
Mike Stump 82d25e4e5e Add mangling for VTTs.
llvm-svn: 85363
2009-10-28 01:51:46 +00:00
Mike Stump 375faa8dd7 Finish off pure virtual function handling.
llvm-svn: 85354
2009-10-28 00:35:46 +00:00
Douglas Gregor 3da3c06578 Slightly improve source location information during template instantiation
llvm-svn: 85353
2009-10-28 00:29:27 +00:00
Douglas Gregor 19f3d70149 Test
explicit-instantiation-declaration-after-explicit-instantiation-definition
errors. This wraps up explicit template instantiation for now.

llvm-svn: 85347
2009-10-27 23:55:05 +00:00
Mike Stump bb9ff05778 Prep work for putting ___cxa_pure_virtual in the vtables for pure functions.
llvm-svn: 85345
2009-10-27 23:46:47 +00:00
Mike Stump 18e8b477e8 Refactor code a little.
llvm-svn: 85343
2009-10-27 23:36:26 +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
Fariborz Jahanian ef8b8ce207 Type of a conditional expression with two distinct objective-c
class pointer is the most derived common class of the two.
This is <rdar://problem/7334235>.

llvm-svn: 85337
2009-10-27 23:02:38 +00:00
Mike Stump 876387ba4f __builtin_object_size refinements. Ensure we handle expressions with
side-effects up front, as when we switch to the llvm intrinsic call
for __builtin_object_size later, it will have two evaluations.

We also finish off the intrinsic version of the code so we can just
turn it on once llvm has the intrinsic.

llvm-svn: 85324
2009-10-27 22:09:17 +00:00
Oscar Fuentes 843c828ed5 CMake: Respect LLVM_LIBDIR_SUFFIX for clang-specific headers under
${libdir}/clang

Patch by Ingmar Vanhassel!

llvm-svn: 85308
2009-10-27 21:15:21 +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
Douglas Gregor afca3b4a5c Explicit instantiation suppresses the instantiation of non-inline
function template specializations and member functions of class
template specializations.

llvm-svn: 85300
2009-10-27 20:53:28 +00:00
Oscar Fuentes e814afd7b0 Rather than excluding quite some things, and still installing
CMakeLists.txt, Makefiles, ... it's better to whitelist what we really
want to install.

Patch by Ingmar Vanhassel!

llvm-svn: 85283
2009-10-27 19:59:34 +00:00
Daniel Dunbar c369d73405 Set OptimizeForSize LLVM function attribute with -Os.
llvm-svn: 85278
2009-10-27 19:48:08 +00:00
Daniel Dunbar 59ca7f1a1e Convert test to FileCheck.
llvm-svn: 85277
2009-10-27 19:48:00 +00:00
Oscar Fuentes e6fc25321f CMake: Append LLVM_LIBDIR_SUFFIX to library destination.
Based on a patch by Ingmar Vanhassel.

llvm-svn: 85276
2009-10-27 19:42:21 +00:00
Daniel Dunbar c14753b781 Fix crash when synthesizing property setters when the property type and ivar
type have mismatched Objective-C types.
  - <rdar://problem/7336352> [irgen] crash in synthesized property construction

llvm-svn: 85275
2009-10-27 19:21:30 +00:00
Douglas Gregor 1d957a336f An explicit instantiation definition only instantiations those class
members that have a definition. Also, use
CheckSpecializationInstantiationRedecl as part of this instantiation
to make sure that we diagnose the various kinds of problems that can
occur with explicit instantiations.

llvm-svn: 85270
2009-10-27 18:42:08 +00:00
Fariborz Jahanian 115654873d Generate constructor for value-initialization cases, even if the
implementation technique doesn't call the constructor at that point.
DR302. Fixes pr5296.

llvm-svn: 85249
2009-10-27 16:51:19 +00:00
Douglas Gregor 04a0a6c461 Test for interaction between explicit instantiations and specializations
llvm-svn: 85244
2009-10-27 15:36:37 +00:00
Douglas Gregor 969c2a238c Test various aspects of explicit instantiation that were already implemented.
llvm-svn: 85243
2009-10-27 15:00:12 +00:00
John Thompson 995c845e5c Disabling some MS extensions which cause this test to fail
llvm-svn: 85242
2009-10-27 14:58:27 +00:00
Rafael Espindola 177f1d979d Split AddDefaultSystemIncludePaths into C, C++ and framework specific functions.
The user visible changes are:

*) Frameworks are only searched on OS X
*) The Cygwin c++ headers are now marked as c++ aware. I am almost
sure that not marking them was a bug.

llvm-svn: 85240
2009-10-27 14:47:31 +00:00
Steve Naroff 6231f18793 Add support for 'CXFile' (<rdar://problem/7303360>).
- 4 new functions (clang_getCursorSourceFile, clang_getDeclSourceFile, clang_getFileName, clang_getFileTime).

- Should remove clang_getDeclSource() and clang_getCursorSource(). For now, just put 'deprecate' comment in header. 

- Also changed CXX style comment to C style (to eliminate warning).

llvm-svn: 85238
2009-10-27 14:35:18 +00:00
Anders Carlsson 29295bff61 Add a PrettyStackTraceDecl in CodeGenModule::EmitGlobalDefinition.
llvm-svn: 85237
2009-10-27 14:32:27 +00:00
John Thompson ec87bb5c46 Disabling some MS extensions which cause these tests to fail
llvm-svn: 85236
2009-10-27 14:31:53 +00:00
John Thompson de258b5ab9 Changes for building as a Windows DLL
llvm-svn: 85234
2009-10-27 13:42:56 +00:00
Benjamin Kramer 59b7cf6a6d Make test independent of darwin system headers.
llvm-svn: 85232
2009-10-27 12:19:13 +00:00
Sebastian Redl 4461507151 Implement Chris's suggestions for the precendence warnings. Reformat the code a bit. Test the fixits.
llvm-svn: 85231
2009-10-27 12:10:02 +00:00
Nuno Lopes 0e86b8675f fix tests
llvm-svn: 85223
2009-10-27 10:09:29 +00:00
Douglas Gregor ef6ab417c1 Only set the point of instantiation for an implicit or explicit
instantiation once we have committed to performing the
instantiation. As part of this, make our makeshift
template-instantiation location information suck slightly less.

Fixes PR5264.

llvm-svn: 85209
2009-10-27 06:26:26 +00:00
Edward O'Callaghan 6d9350b73b Typo in revision 85201.
llvm-svn: 85202
2009-10-27 03:59:44 +00:00
Edward O'Callaghan 7cd5c818da Convert Preprocessor Clang tests to FileCheck in regards to PR5307.
llvm-svn: 85201
2009-10-27 03:47:36 +00:00
Edward O'Callaghan 576a03fed2 Fix a broken test in rev. 85199.
llvm-svn: 85200
2009-10-27 03:14:56 +00:00
Edward O'Callaghan f78edf52de Convert Preprocessor Clang tests to FileCheck in regards to PR5307.
llvm-svn: 85199
2009-10-27 02:36:32 +00:00
Mike Stump 989dc73c48 Almost missed this one... Doc update for last change.
llvm-svn: 85196
2009-10-27 02:07:23 +00:00
Mike Stump ab8b2e08c3 Refine noreturn handling. Fixes -Wmissing-noreturn so that it doesn't
complain that functions that have a return statement should be
declared noreturn.  Fixed PR5286.

llvm-svn: 85195
2009-10-27 01:59:05 +00:00
Edward O'Callaghan 60c143eff0 Preprocessor tests are whitespace sensitive, as per Revision: 85170 review.
llvm-svn: 85194
2009-10-27 01:45:51 +00:00
Ted Kremenek f3afe1e900 Use a pred_iterator instead of a succ_iterator (wrong typedef).
llvm-svn: 85193
2009-10-27 01:07:53 +00:00
Ted Kremenek 64fd20d243 Add test cases for <rdar://problem/7332673>.
llvm-svn: 85191
2009-10-27 01:05:20 +00:00
Rafael Espindola bb85c2644a Document -nobuiltininc
llvm-svn: 85188
2009-10-27 00:29:40 +00:00
Mike Stump 7a484dd6a9 Prep for future __builtin_object_size refinements. The theory is that
someone will add an llvm intrinsic for us to use, so the optimizer can
figure out the hard cases.  WIP.

For those that want to help, double check with Eric before starting.
He has a bit of code this will plug into.

llvm-svn: 85175
2009-10-26 23:39:48 +00:00
Mike Stump 5183a14bfb __builtin_object_size refinements. Also handle stack based objects. WIP.
llvm-svn: 85174
2009-10-26 23:05:19 +00:00
Edward O'Callaghan 0e2f7930fb Convert a few tests to FileCheck for PR5307.
llvm-svn: 85170
2009-10-26 22:51:02 +00:00
Ted Kremenek 12e678d550 Unify Unix and Windows code paths when executing 'clang'.
llvm-svn: 85163
2009-10-26 22:14:08 +00:00
Ted Kremenek bf0690c99f Remove unnecessary calls to 'flush()'.
llvm-svn: 85162
2009-10-26 22:08:39 +00:00
Fariborz Jahanian 038374f887 Add Code gen support for '->*' operator which fell
through the crack.

llvm-svn: 85160
2009-10-26 21:58:25 +00:00
Mike Stump 10bd7e1c5b __builtin_object_size refinements. When we run out of object, be sure
to clamp at 0 bytes left.  WIP.

llvm-svn: 85157
2009-10-26 21:38:39 +00:00