Anders Carlsson
c6a47895f7
Get rid of an unneeded parameter from setGlobalVisibility.
...
llvm-svn: 124541
2011-01-29 19:39:23 +00:00
Anders Carlsson
5963024ff6
Give VTTs the right visibility.
...
llvm-svn: 124540
2011-01-29 19:34:19 +00:00
Anders Carlsson
883fc72c3c
Make emitting a VTT a two-step process, much like emitting a VTable. You first get the address of the VTT, and then pass it to EmitVTTDefinition.
...
llvm-svn: 124539
2011-01-29 19:16:51 +00:00
Anders Carlsson
93be9a90cc
Use CGM.CreateOrReplaceCXXRuntimeVariable in CGVTables.cpp
...
llvm-svn: 124538
2011-01-29 18:25:07 +00:00
Anders Carlsson
da80af3681
Add a new function, to be used by CGRTTI, CGVTables and CGVTT (which each has their own copy of this code).
...
llvm-svn: 124537
2011-01-29 18:20:20 +00:00
Ken Dyck
a45a70cf73
Replace a literal '8' with getCharWidth().
...
llvm-svn: 124536
2011-01-29 17:53:12 +00:00
Anders Carlsson
fd4834061c
Remove IsDefinition from CodeGenModule::setTypeVisibility; it is always true.
...
llvm-svn: 124529
2011-01-29 05:26:32 +00:00
Anders Carlsson
6b3afd7df1
When trying to get the most derived class, don't assume that we can ignore all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost.
...
llvm-svn: 124528
2011-01-29 05:04:11 +00:00
Anders Carlsson
1ae64c5a9d
When calling a virtual member function on a base class and the most derived class is marked 'final', we can devirtualize the call.
...
llvm-svn: 124524
2011-01-29 03:52:01 +00:00
Anders Carlsson
a376b53695
When doing a derived-to-base class through a virtual class, we don't have to get the vbase offset from the vtable if the derived class is marked final.
...
llvm-svn: 124523
2011-01-29 03:18:56 +00:00
Fariborz Jahanian
9f9438b314
More work to support -fapple-kext regarding
...
indirect vf calls and addition of extra entry
at bottom of vtbls.
llvm-svn: 124507
2011-01-28 23:42:29 +00:00
Jeffrey Yasskin
f66a5283ed
Document how to add an attribute to clang. This should be reviewed by someone
...
who actually knows how it works.
llvm-svn: 124506
2011-01-28 23:41:54 +00:00
John McCall
388ef53234
Fix some corner cases in the __is_base_of logic.
...
llvm-svn: 124505
2011-01-28 22:02:36 +00:00
John McCall
b91ab89729
Add my new file to the CMake lists, sorry about that.
...
llvm-svn: 124503
2011-01-28 20:10:46 +00:00
Benjamin Kramer
ed3d85a7f0
Make the FreeBSD driver test more robust so it doesn't fail when there's a single lib32 path.
...
llvm-svn: 124494
2011-01-28 18:28:30 +00:00
John McCall
ed1ae86ac6
Move all the cleanups framework code into a single file.
...
Pure motion.
llvm-svn: 124484
2011-01-28 11:13:47 +00:00
John McCall
cb5f77f046
Reorganize the value-dominance metaprogram and introduce a specialization
...
for CodeGen's RValue type.
llvm-svn: 124483
2011-01-28 10:53:53 +00:00
John McCall
e4df6c8d96
Convert the exception-freeing cleanup over to the conditional cleanups code,
...
fixing a crash which probably nobody was ever going to see. In doing so,
fix a horrendous number of problems with the conditional-cleanups code.
Also, make conditional cleanups re-use the cleanup's activation variable,
which avoids some unfortunate repetitiveness.
llvm-svn: 124481
2011-01-28 08:37:24 +00:00
Nico Weber
24b2a822dd
PR9037: Allow override, final, and new as an extension on inline members.
...
llvm-svn: 124477
2011-01-28 06:07:34 +00:00
John McCall
f26870c43d
Not really any point to testing control flow in this test without
...
ret duplication.
llvm-svn: 124476
2011-01-28 06:05:16 +00:00
Eric Christopher
709e1f3711
Update exceptions.m for r124462.
...
llvm-svn: 124474
2011-01-28 05:13:18 +00:00
Douglas Gregor
c03a1083af
Give OpaqueValueExpr a source location, because its source location
...
might be queried in places where we absolutely require a valid
location (e.g., for template instantiation). Fixes some major
brokenness in the use of __is_convertible_to.
llvm-svn: 124465
2011-01-28 02:26:04 +00:00
Douglas Gregor
3fb22baddb
Allow elision of invocations of move constructors from temporary objects.
...
llvm-svn: 124455
2011-01-27 23:24:55 +00:00
Douglas Gregor
21d3fca917
When producing IR for a lvalue-to-rvalue cast *as an lvalue*, only
...
non-class prvalues actually require the realization of a
temporary. For everything else, we already have an lvalue (or class
prvalue) in the subexpression.
Note: we're missing some move elision in this case. I'll tackle that next.
llvm-svn: 124453
2011-01-27 23:22:05 +00:00
Fariborz Jahanian
ee504a0881
Fix an objective-c rewriter bug rewriting a __block
...
variable declaration of a struct declared type.
// rdar://8918702
llvm-svn: 124451
2011-01-27 23:18:15 +00:00
Douglas Gregor
edb7685712
Teach the evaluation of the __is_convertible_to trait to translate
...
access control errors into SFINAE errors, so that the trait provides
enough support to implement the C++0x std::is_convertible type trait.
To get there, the SFINAETrap now knows how to set up a SFINAE context
independent of any template instantiations or template argument
deduction steps, and (separately) can set a Sema flag to translate
access control errors into SFINAE errors. The latter can also be
useful if we decide that access control errors during template argument
deduction should cause substitution failure (rather than a hard error)
as has been proposed for C++0x.
llvm-svn: 124446
2011-01-27 22:31:44 +00:00
Ted Kremenek
44dc127f78
Adjust casing of attributes in examples.
...
llvm-svn: 124445
2011-01-27 22:00:02 +00:00
Douglas Gregor
61b7f5e3fd
Separate the access-control diagnostics from other diagnostics that do not have SFINAE behavior.
...
llvm-svn: 124441
2011-01-27 21:06:28 +00:00
Douglas Gregor
e5bef035c6
Document some serious badness in our evaluation of the type traits: we need to be sure we have complete types in many cases
...
llvm-svn: 124428
2011-01-27 20:35:44 +00:00
Douglas Gregor
8006e76b4e
Implement the Microsoft __is_convertible_to type trait, modeling the
...
semantics after the C++0x is_convertible type trait. This
implementation is not 100% complete, because it allows access errors
to be hard errors (rather than just evaluating false).
Original patch by Steven Watanabe!
llvm-svn: 124425
2011-01-27 20:28:01 +00:00
Abramo Bagnara
92141d22ce
Fixed parameter names.
...
llvm-svn: 124408
2011-01-27 19:55:10 +00:00
Ted Kremenek
e801399372
Fix download link.
...
llvm-svn: 124405
2011-01-27 19:49:07 +00:00
Ted Kremenek
8688e078ae
Add missing </a>
...
llvm-svn: 124403
2011-01-27 19:42:34 +00:00
Ted Kremenek
cfc9dc6876
Update checker build and post release notes.
...
llvm-svn: 124402
2011-01-27 19:41:08 +00:00
Jeffrey Yasskin
bbc4eea2c2
Revert r124217 because it didn't catch the actual error case it was trying to
...
catch:
lock_guard(my_mutex);
declares a variable instead of creating a temporary.
llvm-svn: 124398
2011-01-27 19:17:54 +00:00
Ted Kremenek
1be4a59a11
Teach -Wuninitialized about indirect goto. Fixes PR 9071.
...
llvm-svn: 124394
2011-01-27 18:51:39 +00:00
Douglas Gregor
5fcfb2fe0c
Clean up the diagnostic text for delegating constructors
...
llvm-svn: 124393
2011-01-27 18:50:39 +00:00
Ted Kremenek
afe348ea43
Wire up attributes 'ns_consumed' and 'cf_consumed' in the static analyzer's ObjC retain/release checker.
...
llvm-svn: 124386
2011-01-27 18:43:03 +00:00
Douglas Gregor
9c2e896d62
Test for previous commit
...
llvm-svn: 124385
2011-01-27 18:39:26 +00:00
Argyrios Kyrtzidis
ff115a2f35
Allow #pragma unused to be used on global variables like gcc. Fixes rdar://8793832.
...
llvm-svn: 124383
2011-01-27 18:16:48 +00:00
Douglas Gregor
ffd6dc432e
Teach ASTUnit to save the specified target features, since
...
TargetInfo::CreateTargetInfo() mangles the target options in a way
that is not idempotent. Fixes <rdar://problem/8807535>.
llvm-svn: 124382
2011-01-27 18:02:58 +00:00
Douglas Gregor
56a6380cb7
Add libclang functions to determine the const/volatile/restrict
...
qualifiers on a CXType. Patch from Stefan Seefeld, test by me.
llvm-svn: 124377
2011-01-27 16:27:11 +00:00
Argyrios Kyrtzidis
add754a02e
[analyzer] Fix crash when handling dot syntax on 'super'.
...
llvm-svn: 124376
2011-01-27 16:17:11 +00:00
Axel Naumann
63fbaeda29
TextDiagnosticPrinter.cpp: Show diagnostics as far as possible even with invalid PresomedLoc, instead of just silencing it.
...
FileManager.cpp: Allow virtual files in nonexistent directories.
FileManager.cpp: Close FileDescriptor for virtual files that correspond to actual files.
FileManager.cpp: Enable virtual files to be created even for files that were flagged as NON_EXISTENT_FILE, e.g. by a prior (unsuccessful) addFile().
ASTReader.cpp: Read a PCH even if the original source files cannot be found.
Add a test for reading a PCH of a file that has been removed and diagnostics referencing that file.
llvm-svn: 124374
2011-01-27 10:55:51 +00:00
John McCall
284c48fff6
Do a proper recursive lookup when deciding whether a class's usual
...
deallocation function has a two-argument form. Store the result of this
check in new[] and delete[] nodes.
Fixes rdar://problem/8913519
llvm-svn: 124373
2011-01-27 09:37:56 +00:00
John McCall
d5c9b1d65e
Provide Type::castAs<>, which is to getAs<> what cast<> is to dyn_cast<>.
...
Also provide a method to grab the base element type of a type without
stressing out over qualifiers (but give it a nice scary name).
llvm-svn: 124367
2011-01-27 08:17:49 +00:00
NAKAMURA Takumi
f9cbcc4cc2
Fix whitespace.
...
llvm-svn: 124364
2011-01-27 07:10:08 +00:00
NAKAMURA Takumi
7c2888689d
7bit-ize.
...
llvm-svn: 124363
2011-01-27 07:09:49 +00:00
Ted Kremenek
35389de110
Fix HTML highlighting and add missing line.
...
llvm-svn: 124362
2011-01-27 07:02:03 +00:00
Ted Kremenek
4272cbdff5
Fix a few typos in HTML documentation.
...
llvm-svn: 124361
2011-01-27 06:59:29 +00:00