Commit Graph

1127 Commits

Author SHA1 Message Date
Daniel Dunbar 16b0ec59f2 Fix newlines.
llvm-svn: 123742
2011-01-18 05:36:08 +00:00
Daniel Dunbar 84b643ebba tests: Force a triple.
llvm-svn: 123741
2011-01-18 05:36:03 +00:00
Francois Pichet 6422579411 Add support for explicit constructor calls in Microsoft mode.
For example: 

class A{ 
public:
  A& operator=(const A& that) {
      if (this != &that) {
          this->A::~A();
          this->A::A(that);  // <=== explicit constructor call.
      }
      return *this;
  }
};

More work will be needed to support an explicit call to a template constructor.

llvm-svn: 123735
2011-01-18 05:04:39 +00:00
Rafael Espindola facb7d0ade Also set unnamed_addr on declarations.
llvm-svn: 123531
2011-01-15 08:23:14 +00:00
Owen Anderson 6216a44d35 Fixed by r123477.
llvm-svn: 123478
2011-01-14 22:19:38 +00:00
Chris Lattner fe8b47411e temporarily xfail, this was broken by r123418
llvm-svn: 123430
2011-01-14 05:30:12 +00:00
Douglas Gregor d43037cb70 Fix a test case
llvm-svn: 123382
2011-01-13 18:03:24 +00:00
Douglas Gregor b720ff2f62 When your comments and your code are out-of-sync, the test case is wrong.
llvm-svn: 123379
2011-01-13 17:44:36 +00:00
Douglas Gregor d81c7c1659 Add tests for name mangling of variadic templates.
llvm-svn: 123378
2011-01-13 16:39:34 +00:00
Rafael Espindola d09776b945 Only add unnamed_addr to definitions.
llvm-svn: 123354
2011-01-13 01:12:55 +00:00
Douglas Gregor be7b54889f Add IR generation support for SizeOfPackExpr.
llvm-svn: 123332
2011-01-12 22:11:34 +00:00
Rafael Espindola 25f4620c67 Set unnamed_addr in every type info.
llvm-svn: 123293
2011-01-11 23:55:05 +00:00
Rafael Espindola bb7f7686c5 Set unnamed_addr in VTTs.
llvm-svn: 123280
2011-01-11 22:29:55 +00:00
Rafael Espindola b1e879c80f Set unnamed_addr for type infos that we are confortable marking as hidden. I
think it is safe to mark all type infos with unnamed_addr, but I am not sure.

llvm-svn: 123275
2011-01-11 21:44:37 +00:00
Rafael Espindola 5674c644cf Add unnamed_addr to vtables.
llvm-svn: 123272
2011-01-11 21:10:26 +00:00
Rafael Espindola 0ee986c1f1 Add unnamed_addr to constructors and destructors.
llvm-svn: 123197
2011-01-11 00:26:26 +00:00
Rafael Espindola b7f60e3474 Add unnamed_addr when creating artificial string globals. For example, in
static const char foo[] = "foo";
static const char *bar = "bar";

the global created to hold "bar" will have it, but foo will not.

llvm-svn: 123192
2011-01-10 22:34:03 +00:00
Devang Patel c07c98f853 Add target triple.
llvm-svn: 122980
2011-01-06 22:30:05 +00:00
Devang Patel 5df8acf809 test case for r122971.
llvm-svn: 122972
2011-01-06 21:40:22 +00:00
Douglas Gregor 4234eb23b3 Tweak test for portability
llvm-svn: 122850
2011-01-04 22:41:29 +00:00
Douglas Gregor ad6edc1eef Simplistic test case for mangling of variadic templates. There is more to be done in this area
llvm-svn: 122845
2011-01-04 22:16:00 +00:00
Rafael Espindola 7bcde197d7 Fix PR8796.
The problem was that we were asserting the we never added an empty class
to the same offset twice. This is not true for unions, where two members, empty
or not, can have the some offset.

llvm-svn: 122633
2010-12-29 23:02:58 +00:00
Douglas Gregor 9246b6830a In C++, if the user redeclares a builtin function with a type that is
inconsistent with the type that the builtin *should* have, forget
about the builtin altogether: we don't want subsequence analyses,
CodeGen, etc., to think that we have a proper builtin function.

C is protected from errors here because it allows one to use a
library builtin without having a declaration, and detects inconsistent
(re-)declarations of builtins during declaration merging. C++ was
unprotected, and therefore would crash.

Fixes PR8839.

llvm-svn: 122351
2010-12-21 19:47:46 +00:00
Chris Lattner 6cc8fe9356 add missing newlines at end of file.
llvm-svn: 122309
2010-12-21 02:36:58 +00:00
Francois Pichet bea85d8477 XFAIL vtable-debug-info.cpp on WIN32 and fix curly brace.
llvm-svn: 122230
2010-12-20 05:44:28 +00:00
Francois Pichet 66856bc343 Disable this test on Windows; it crashes and popup an dialog on each lit test run.
I have no idea how to fix it.

llvm-svn: 122227
2010-12-20 04:14:03 +00:00
John McCall ec00cd9713 Fix test. I added one last test and then forget to re-check.
llvm-svn: 122137
2010-12-18 03:52:04 +00:00
John McCall 659a337c74 Apply attributes to explicit specializations. Specializations which
don't provide their own explicit visibility attributes should get them
from the template.  Fixes rdar://problem/8778497.

llvm-svn: 122136
2010-12-18 03:30:47 +00:00
John McCall 09982c0a49 Give hidden visibility to RTTI for derived types. This is kindof a hacky
way to do this, but it fixes rdar://problem/8778973

llvm-svn: 122033
2010-12-17 02:58:03 +00:00
John McCall 357d0f3caf Set the "implicitly inline" bit on a method as soon as we see a definition
within the class.  Teach IR gen to look for function definitions in record
lexical contexts when deciding whether to emit a function whose address    
was taken.  Fixes PR8789.

llvm-svn: 121833
2010-12-15 04:00:32 +00:00
John McCall 2faf32c4fd Treat visibility on an enclosing namespace as a non-explicit source of
visibility.  Fixes PR8713.

I've disabled a test which was testing that you can #pragma pop visibility
to get out of a namespace's visibility attribute.  We should probably just
diagnose that as an error unless it's instrumental to someone's system
headers.

llvm-svn: 121459
2010-12-10 02:59:44 +00:00
Argyrios Kyrtzidis 648fcbef5b Fix another obscure corner layout case.
llvm-svn: 121436
2010-12-10 00:11:00 +00:00
Devang Patel d81c110106 Update test.
This test intends to catch invalid use of ".byte 256" in output. Now, the assert in MC will be triggered in such cases.

llvm-svn: 121403
2010-12-09 19:27:37 +00:00
Douglas Gregor ff76cb9727 When an "inline" declaration was followed by a definition not marked
"inline", we weren't giving the definition weak linkage because the
"inline" bit wasn't propagated. This was a longstanding FIXME that,
somehow, hadn't triggered a bug in the wild. Fix this problem by
tracking whether any declaration was marked "inline", and clean up the
semantics of GNU's "extern inline" semantics calculation based on this
change.

Fixes <rdar://problem/8740363>.

llvm-svn: 121373
2010-12-09 16:59:22 +00:00
Francois Pichet dbafc19fe0 Fix PR8760: IndirectFieldDecl Type was not updated during template instantiation.
llvm-svn: 121363
2010-12-09 10:07:54 +00:00
Devang Patel 9e54878884 Test case for r121323.
llvm-svn: 121324
2010-12-09 00:11:12 +00:00
Rafael Espindola 0017c5fa92 Fix PR8720 by printing an error message with a substring that the gcc testsuite searches for.
llvm-svn: 121137
2010-12-07 15:23:23 +00:00
John McCall d0a300162e __block variables require us to evaluate the RHS of an assignment before
the LHS, or else the pointer might be invalid.  This is kindof dumb, but
go ahead and make sure we're doing that for l-value scalar assignment,
which fixes a miscompile of obj-c++.dg/block-seq.mm.

Leave a FIXME for how to solve this problem for agg __blocks.

llvm-svn: 120992
2010-12-06 06:10:02 +00:00
John McCall a2342eb857 Fix a bug in the emission of __real/__imag l-values on scalar operands.
Fix a bug in the emission of complex compound assignment l-values.
Introduce a method to emit an expression whose value isn't relevant.
Make that method evaluate its operand as an l-value if it is one.
Fixes our volatile compliance in C++.

llvm-svn: 120931
2010-12-05 02:00:02 +00:00
Anders Carlsson 0febb8acdf Put each test in class-layout.cpp into a separate namespace.
llvm-svn: 120925
2010-12-05 00:08:52 +00:00
Chris Lattner c5cc2fb980 fix PR8726 by teaching the aggregate init optimization code to handle
structs with references in them correctly.

llvm-svn: 120722
2010-12-02 18:29:00 +00:00
Fariborz Jahanian 3086ddffd7 Test for // rdar://8594790
llvm-svn: 120717
2010-12-02 17:58:10 +00:00
John McCall f3735e01ce Restore the lvalue-to-rvalue conversion patch with a minimal fix.
llvm-svn: 120555
2010-12-01 04:43:34 +00:00
Anders Carlsson 66bbf50877 Look through parentheses when deciding whether an expr is a temporary object. Fixes PR8683.
llvm-svn: 120247
2010-11-28 16:40:49 +00:00
John McCall 5b26f65b3d Reset the lifetime-managed flag between emission of the agg conditional
branches.  Fixes PR8623.

llvm-svn: 119408
2010-11-17 00:07:33 +00:00
John McCall 4f29b49de1 Support compound complex operations as l-values in C++. Add a test
case based on CodeGen/volatile-1.c which tests the current C++
semantics, and note the many, many places we fall short of them.

llvm-svn: 119402
2010-11-16 23:07:28 +00:00
Bob Wilson bafdb73e79 Add a test for Neon vector mangling
llvm-svn: 119304
2010-11-16 00:32:31 +00:00
NAKAMURA Takumi e82858299c test/CodeGenCXX/dyncast.cpp: Remove XFAIL:win32 with tweaking llvm/utils/FileCheck in r119023, due to DOSish crlf issue.
llvm-svn: 119024
2010-11-14 03:29:22 +00:00
Fariborz Jahanian e988bdac44 Block API patch to do copy ctor of copied-in cxx objects in
copy helper function and dtor of copied cxx objects
in dispose helper functions. __block variables
TBD next.

llvm-svn: 119011
2010-11-13 21:53:34 +00:00
Charles Davis 99202b358f Use the right calling convention when mangling names in the Microsoft C++
mangler. Now member functions and pointers thereof have their calling
convention mangled as __thiscall if they have the default CC (even though,
they technically still have the __cdecl CC).

llvm-svn: 118598
2010-11-09 18:04:24 +00:00