]> granicus.if.org Git - clang/log
clang
13 years agoWhen writing file references in a pch, make sure to ask the file manager for the...
Anders Carlsson [Tue, 8 Mar 2011 16:04:35 +0000 (16:04 +0000)]
When writing file references in a pch, make sure to ask the file manager for the absolute path.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127248 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed NamespaceDecl source range.
Abramo Bagnara [Tue, 8 Mar 2011 12:38:20 +0000 (12:38 +0000)]
Fixed NamespaceDecl source range.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127242 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agolib/Basic/Targets.cpp: mingw-w64 should define __MINGW32__, too.
NAKAMURA Takumi [Tue, 8 Mar 2011 12:06:46 +0000 (12:06 +0000)]
lib/Basic/Targets.cpp: mingw-w64 should define __MINGW32__, too.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127238 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed bitfields source range.
Abramo Bagnara [Tue, 8 Mar 2011 11:07:11 +0000 (11:07 +0000)]
Fixed bitfields source range.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127237 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEmit block capture initializers as if they were normal initializers for a local
John McCall [Tue, 8 Mar 2011 09:38:48 +0000 (09:38 +0000)]
Emit block capture initializers as if they were normal initializers for a local
variable that just happens to be stored in a wierd place.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127235 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExtract a function to emit an arbitrary expression as if it were the initializer
John McCall [Tue, 8 Mar 2011 09:11:50 +0000 (09:11 +0000)]
Extract a function to emit an arbitrary expression as if it were the initializer
for a local variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127227 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed source range for all DeclaratorDecl's.
Abramo Bagnara [Tue, 8 Mar 2011 08:55:46 +0000 (08:55 +0000)]
Fixed source range for all DeclaratorDecl's.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127225 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemoved trailing whitespace as a test commit
John Wiegley [Tue, 8 Mar 2011 08:13:22 +0000 (08:13 +0000)]
Removed trailing whitespace as a test commit

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127223 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix my earlier commit to work with escaped newlines and leave breadcrumbs
John McCall [Tue, 8 Mar 2011 07:59:04 +0000 (07:59 +0000)]
Fix my earlier commit to work with escaped newlines and leave breadcrumbs
in case we want to make a world where we can check intermediate instantiations
for this kind of breadcrumb.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127221 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc_gc wants a pointer type, not a function type; give it a more appropriate
John McCall [Tue, 8 Mar 2011 04:17:03 +0000 (04:17 +0000)]
objc_gc wants a pointer type, not a function type;  give it a more appropriate
diagnostic.  Also, these attributes are commonly written with macros which we
actually pre-define, so instead of expanding the macro location, refer to the
instantiation location and name it using the macro loc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127219 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate the check for a NULL macro to use Preprocessor::getSpelling().
John McCall [Tue, 8 Mar 2011 04:07:54 +0000 (04:07 +0000)]
Update the check for a NULL macro to use Preprocessor::getSpelling().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127217 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd an API call to retrieve the spelling data of a token from its SourceLocation.
John McCall [Tue, 8 Mar 2011 04:06:57 +0000 (04:06 +0000)]
Add an API call to retrieve the spelling data of a token from its SourceLocation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127216 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDetect attempts to provide a specialization of a function within a
Douglas Gregor [Tue, 8 Mar 2011 02:04:14 +0000 (02:04 +0000)]
Detect attempts to provide a specialization of a function within a
dependent scope and produce an error (rather than crashing). Fixes PR8979.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127206 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix tests to account for new warning "expected ';' at end of declaration list". ...
Carl Norum [Mon, 7 Mar 2011 22:57:45 +0000 (22:57 +0000)]
Fix tests to account for new warning "expected ';' at end of declaration list".  Sorry, folks!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127188 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen we adjust the inline ASM type, we need to take into account an early
Bill Wendling [Mon, 7 Mar 2011 22:47:14 +0000 (22:47 +0000)]
When we adjust the inline ASM type, we need to take into account an early
clobber with the 'y' constraint. Otherwise, we get the wrong return type and an
assert, because it created a '<1 x i64>' vector type instead of the x86_mmx
type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127185 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAllow passing '-###' to ASTUnit::LoadFromCommandLine to print out the cc1 options.
Argyrios Kyrtzidis [Mon, 7 Mar 2011 22:45:01 +0000 (22:45 +0000)]
Allow passing '-###' to ASTUnit::LoadFromCommandLine to print out the cc1 options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127183 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoChange diagnostic message from "Extension" to "ExtWarn" to find more problems with...
Carl Norum [Mon, 7 Mar 2011 22:19:06 +0000 (22:19 +0000)]
Change diagnostic message from "Extension" to "ExtWarn" to find more problems with missing semicolons.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127177 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix null dereference in CFGBlock::FilterEdge that was reported in PR 9412.
Ted Kremenek [Mon, 7 Mar 2011 22:04:39 +0000 (22:04 +0000)]
Fix null dereference in CFGBlock::FilterEdge that was reported in PR 9412.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127176 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCodeGenFunction::GenerateBlockFunction() should initialize DebugInfo just like CodeGe...
Devang Patel [Mon, 7 Mar 2011 21:53:18 +0000 (21:53 +0000)]
CodeGenFunction::GenerateBlockFunction() should initialize DebugInfo just like CodeGenFunction::GenerateCode()

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127174 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agog++ is more permissive regarding flexible arrays.
Argyrios Kyrtzidis [Mon, 7 Mar 2011 20:04:04 +0000 (20:04 +0000)]
g++ is more permissive regarding flexible arrays.
It will accept flexible array in union and also as the sole element of a struct/class.

Fixes rdar://9065507.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127171 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDebugInfo can be enabled or disabled at function level (e.g. using an attribute)...
Devang Patel [Mon, 7 Mar 2011 18:45:56 +0000 (18:45 +0000)]
DebugInfo can be enabled or disabled at function level (e.g. using an attribute). However, at module level it is determined by command line option and the state of command line option does not change during compilation. Make this layering explicit and fix accidental cases where the code generator was checking whether module has debug info enabled instead of checking whether debug info is enabled for this function or not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127165 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDo not emit stop point for CXXDefaultArgExpr. It results in suboptimial user experience.
Devang Patel [Mon, 7 Mar 2011 18:29:53 +0000 (18:29 +0000)]
Do not emit stop point for CXXDefaultArgExpr. It results in suboptimial user experience.

21 int main() {
22  A a;

For example, here user would expect to stop at line 22, even if A's constructor leads to a call through CXXDefaultArgExpr.

This fixes ostream-defined.exp regression from gdb testsuite.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127164 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSupport explicit template specialization and instantiation for members
Douglas Gregor [Mon, 7 Mar 2011 16:54:27 +0000 (16:54 +0000)]
Support explicit template specialization and instantiation for members
of a C++0x inline namespace within enclosing namespaces, as noted in
C++0x [namespace.def]p8.

Fixes <rdar://problem/9006349>, a libc++ failure where Clang was
rejected an explicit specialization of std::swap (since libc++ puts it
into an inline, versioned namespace std::__1).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127162 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen rebuilding a dependent template specialization type to another
Douglas Gregor [Mon, 7 Mar 2011 15:13:34 +0000 (15:13 +0000)]
When rebuilding a dependent template specialization type to another
dependent template specialization type, make sure to set the keyword
location. Fixes some valgrind issues introduced in r127150.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127159 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe conditional needs to be pushed before the branch. Make the test less
John McCall [Mon, 7 Mar 2011 03:12:35 +0000 (03:12 +0000)]
The conditional needs to be pushed before the branch.  Make the test less
trivial to check this.  Adjust for style.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127151 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen transforming a dependent template specialization type, make sure
Douglas Gregor [Mon, 7 Mar 2011 02:33:33 +0000 (02:33 +0000)]
When transforming a dependent template specialization type, make sure
to set the source-location information for the template arguments to
the *transformed* source-location information, not the original
source-location information. Fixes <rdar://problem/8986308> (a libc++
SFINAE issue) and the Boost.Polygon failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127150 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoProduce a diagnostic for unused overloaded expressions, from Faisal Vali!
Douglas Gregor [Mon, 7 Mar 2011 02:05:23 +0000 (02:05 +0000)]
Produce a diagnostic for unused overloaded expressions, from Faisal Vali!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127148 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAn operator new with an empty exception specifier returns null on a bad
John McCall [Mon, 7 Mar 2011 01:52:56 +0000 (01:52 +0000)]
An operator new with an empty exception specifier returns null on a bad
allocation and therefore requires a null-check.  We were doing that, but
we weren't treating the new-initializer as being conditionally executed,
which means it was possible to get ill-formed IR as in PR9298.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127147 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCheck in the implementation as well...
Anders Carlsson [Mon, 7 Mar 2011 01:28:33 +0000 (01:28 +0000)]
Check in the implementation as well...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127144 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a non-static FixupRelativePath to FileManager.
Anders Carlsson [Mon, 7 Mar 2011 01:27:37 +0000 (01:27 +0000)]
Add a non-static FixupRelativePath to FileManager.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127143 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRedo part of r127137:
Joerg Sonnenberger [Mon, 7 Mar 2011 01:15:29 +0000 (01:15 +0000)]
Redo part of r127137:
Pass down the correct C->getArgs, but keep it with the original
DerivedArgList type. Slightly adjust the MakeIndex call for the
different base type. This unbreaks the handling of --no-mangle on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127142 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove the AST printer (-ast-print-xml), which is too incomplete and
Douglas Gregor [Mon, 7 Mar 2011 01:03:30 +0000 (01:03 +0000)]
Remove the AST printer (-ast-print-xml), which is too incomplete and
too low-level to actually be useful but is just interesting enough for
people to try to use it (which won't actually work beyond toy examples).

To bring back the AST printer, it needs to be:
  - Complete, covering all of C/C++/Objective-C
  - Documented, with appropriate Schema against which we can validate
  the output
  - Designed for C/C++/Objective-C, not Clang's specific ASTs
  - Stable across Clang versions
  - Well-tested

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127141 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExplicitly initialize CCCIsCPP
Joerg Sonnenberger [Mon, 7 Mar 2011 00:09:32 +0000 (00:09 +0000)]
Explicitly initialize CCCIsCPP

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127139 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIf called as *cpp or *cpp-[^-]*, run only the preprocessor. If no
Joerg Sonnenberger [Sun, 6 Mar 2011 23:31:01 +0000 (23:31 +0000)]
If called as *cpp or *cpp-[^-]*, run only the preprocessor. If no
input is specified, use stdin implicitly. Based on a patch from
Roman Divacky.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127137 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r126422 "Use private linkage to avoid symbol conflicts in
Douglas Gregor [Sun, 6 Mar 2011 23:28:21 +0000 (23:28 +0000)]
Revert r126422 "Use private linkage to avoid symbol conflicts in
corner cases like the one in PR9301." which caused PR9416.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127136 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUsed a nicer cast.
Abramo Bagnara [Sun, 6 Mar 2011 22:48:24 +0000 (22:48 +0000)]
Used a nicer cast.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127134 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConvert FileManager::FixupRelativePath over to using PathV2.
Anders Carlsson [Sun, 6 Mar 2011 22:25:35 +0000 (22:25 +0000)]
Convert FileManager::FixupRelativePath over to using PathV2.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127133 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImproved type source location for long long type.
Abramo Bagnara [Sun, 6 Mar 2011 22:21:56 +0000 (22:21 +0000)]
Improved type source location for long long type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127132 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest/PCH/headersearch.cpp: Tweak for Windows hosts especially cygming.
NAKAMURA Takumi [Sun, 6 Mar 2011 20:44:33 +0000 (20:44 +0000)]
test/PCH/headersearch.cpp: Tweak for Windows hosts especially cygming.

This test requires shell feature, to change working directory.
On Windows, current directory cannot be moved nor removed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127130 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWe may fail to map a declaration in a template to its instantiated
Douglas Gregor [Sun, 6 Mar 2011 20:12:45 +0000 (20:12 +0000)]
We may fail to map a declaration in a template to its instantiated
declaration because of interesting ordering dependencies while
instantiating a class template or member class thereof. Complain,
rather than asserting (+Asserts) or silently rejecting the code
(-Asserts).

Fixes the crash-on-invalid in PR8965.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127129 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix driver for thumb-capable ARM hosts, from Mikko Lehtonen!
Douglas Gregor [Sun, 6 Mar 2011 19:11:49 +0000 (19:11 +0000)]
Fix driver for thumb-capable ARM hosts, from Mikko Lehtonen!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127128 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename the type argument for the iboutletcollection attribute to not
Douglas Gregor [Sun, 6 Mar 2011 18:55:32 +0000 (18:55 +0000)]
Rename the type argument for the iboutletcollection attribute to not
conflict with MinGW headers, from Kirk Beitz!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127127 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWrite CXX base specifier offsets for chained ASTs.
Anders Carlsson [Sun, 6 Mar 2011 18:41:18 +0000 (18:41 +0000)]
Write CXX base specifier offsets for chained ASTs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127126 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen serializing a DeclRefExpr, always store the number of explicit template
Anders Carlsson [Sun, 6 Mar 2011 18:19:42 +0000 (18:19 +0000)]
When serializing a DeclRefExpr, always store the number of explicit template
arguments at the same offset, since it's needed when creating the empty
DeclRefExpr when deserializing. Fixes a memory corruption issue that would lead
to random bugs and crashes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127125 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd MinGW GCC 4.5.2 include paths, from Matthieu Monrocq
Douglas Gregor [Sun, 6 Mar 2011 18:00:59 +0000 (18:00 +0000)]
Add MinGW GCC 4.5.2 include paths, from Matthieu Monrocq

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127124 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix copy-and-paste typo in the transformation of Microsoft __uuidof expressions,...
Douglas Gregor [Sun, 6 Mar 2011 17:40:41 +0000 (17:40 +0000)]
Fix copy-and-paste typo in the transformation of Microsoft __uuidof expressions, from Eric Niebler via John Wiegley

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127123 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago xpose HeaderSearch::SearchDirs to tools,s, from Paul Holden
Douglas Gregor [Sun, 6 Mar 2011 17:33:53 +0000 (17:33 +0000)]
 xpose HeaderSearch::SearchDirs to tools,s, from Paul Holden

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127122 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrectly unwrap 'auto' types. Fixes PR9414.
Anders Carlsson [Sun, 6 Mar 2011 16:43:04 +0000 (16:43 +0000)]
Correctly unwrap 'auto' types. Fixes PR9414.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127121 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCompleted source ranges fixes for all classes inheriting from TypeDecl.
Abramo Bagnara [Sun, 6 Mar 2011 16:09:14 +0000 (16:09 +0000)]
Completed source ranges fixes for all classes inheriting from TypeDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127120 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed TypedefDecl and TemplateTypeParameter source range.
Abramo Bagnara [Sun, 6 Mar 2011 15:48:19 +0000 (15:48 +0000)]
Fixed TypedefDecl and TemplateTypeParameter source range.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127119 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReinstate r127112, "Propagate new-style exception spec information to ExtProtoInfo...
Sebastian Redl [Sun, 6 Mar 2011 10:52:04 +0000 (10:52 +0000)]
Reinstate r127112, "Propagate new-style exception spec information to ExtProtoInfo.", this time with the missing header.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127118 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen performing template argument deduction for a non-reference
Douglas Gregor [Sun, 6 Mar 2011 09:03:20 +0000 (09:03 +0000)]
When performing template argument deduction for a non-reference
conversion function when we're binding the result to a reference, drop
cv-qualifiers on the type we're referring to, since we should be
deducing a type that can be adjusted (via cv-qualification) to the
requested type. Fixes PR9336, and the remaining Boost.Assign failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127117 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r127112, "Propagate new-style exception spec information to ExtProtoInfo."
NAKAMURA Takumi [Sun, 6 Mar 2011 00:17:36 +0000 (00:17 +0000)]
Revert r127112, "Propagate new-style exception spec information to ExtProtoInfo."

It seems missing "clang/Basic/ExceptionSpecificationType.h".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127115 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPropagate new-style exception spec information to ExtProtoInfo.
Sebastian Redl [Sat, 5 Mar 2011 22:42:26 +0000 (22:42 +0000)]
Propagate new-style exception spec information to ExtProtoInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127112 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPropagate new-style exception spec information to Declarator.
Sebastian Redl [Sat, 5 Mar 2011 22:42:13 +0000 (22:42 +0000)]
Propagate new-style exception spec information to Declarator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127111 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r127079: "test/Makefile: Use $(ECHOPATH) to make lit.site.cfg(s)."
Benjamin Kramer [Sat, 5 Mar 2011 20:57:36 +0000 (20:57 +0000)]
Revert r127079: "test/Makefile: Use $(ECHOPATH) to make lit.site.cfg(s)."

It depends on LLVM r127073 that was reverted and is now blocking "make test"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127109 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen substituting in for a template name, do not produce a qualified
Douglas Gregor [Sat, 5 Mar 2011 20:06:51 +0000 (20:06 +0000)]
When substituting in for a template name, do not produce a qualified
template name as the result of substitution. The qualifier is handled
separately by the tree transformer, so we would end up in an
inconsistent state.

This is actually the last bit of PR9016, and possibly also fixes
PR8965. It takes Boost.Icl from "epic fail" down to a single failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127108 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed LabelDecl source range and cleaned creation code.
Abramo Bagnara [Sat, 5 Mar 2011 18:21:20 +0000 (18:21 +0000)]
Fixed LabelDecl source range and cleaned creation code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127094 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen determining template instantiation arguments within a function
Douglas Gregor [Sat, 5 Mar 2011 17:54:25 +0000 (17:54 +0000)]
When determining template instantiation arguments within a function
template (not a specialization!), use the "injected" function template
arguments, which correspond to the template parameters of the function
template. This is required when substituting into the default template
parameters of template template parameters within a function template.

Fixes PR9016.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127092 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen transforming a substituted template type parameter, try to
Douglas Gregor [Sat, 5 Mar 2011 17:19:27 +0000 (17:19 +0000)]
When transforming a substituted template type parameter, try to
transform the type that replaces the template type parameter. In the
vast majority of cases, there's nothing to do, because most template
type parameters are replaced with something non-dependent that doesn't
need further transformation. However, when we're dealing with the
default template arguments of template template parameters, we might
end up replacing a template parameter (of the template template
parameter) with a template parameter of the enclosing template.

This addresses part of PR9016, but not within function
templates. That's a separate issue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127091 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNormalize target triple passed out of driver. Basically this means
Anton Korobeynikov [Sat, 5 Mar 2011 16:05:17 +0000 (16:05 +0000)]
Normalize target triple passed out of driver. Basically this means
that at cc1 level we will always have normalized triple and thus can
provide necessary default based on e.g. environment value (e.g. for
"arm-eabi" triple, etc.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127087 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoParser support for noexcept specifications.
Sebastian Redl [Sat, 5 Mar 2011 14:45:16 +0000 (14:45 +0000)]
Parser support for noexcept specifications.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127086 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImproved MemberPointerType source locations.
Abramo Bagnara [Sat, 5 Mar 2011 14:42:21 +0000 (14:42 +0000)]
Improved MemberPointerType source locations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127085 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoStringRefify.
Benjamin Kramer [Sat, 5 Mar 2011 13:45:23 +0000 (13:45 +0000)]
StringRefify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127082 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest/lit.cfg: bash is available on MSYS.
NAKAMURA Takumi [Sat, 5 Mar 2011 11:16:06 +0000 (11:16 +0000)]
test/lit.cfg: bash is available on MSYS.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127080 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest/Makefile: Use $(ECHOPATH) to make lit.site.cfg(s).
NAKAMURA Takumi [Sat, 5 Mar 2011 11:16:01 +0000 (11:16 +0000)]
test/Makefile: Use $(ECHOPATH) to make lit.site.cfg(s).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127079 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest/CodeGen/2008-07-17-no-emit-on-error.c: Use LLVM's opt instead of "test(1)" for...
NAKAMURA Takumi [Sat, 5 Mar 2011 11:15:55 +0000 (11:15 +0000)]
test/CodeGen/2008-07-17-no-emit-on-error.c: Use LLVM's opt instead of "test(1)" for Mingw MSYS.

Mingw MSYS does not have test.exe (only shell built-in test), and is not capable to invoke test(1) from utils/not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127078 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest: Mark 3 tests as XFAIL:cygwin,mingw.
NAKAMURA Takumi [Sat, 5 Mar 2011 11:15:48 +0000 (11:15 +0000)]
test: Mark 3 tests as XFAIL:cygwin,mingw.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127077 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest: Mark two tests as XFAIL:mingw.
NAKAMURA Takumi [Sat, 5 Mar 2011 11:15:38 +0000 (11:15 +0000)]
test: Mark two tests as XFAIL:mingw.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127076 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMuch to my surprise, OverloadExprs can also point to function template decls.
Matt Beaumont-Gay [Sat, 5 Mar 2011 02:42:30 +0000 (02:42 +0000)]
Much to my surprise, OverloadExprs can also point to function template decls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127061 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen we're deserializing a template parameter declaration, temporarily
Douglas Gregor [Sat, 5 Mar 2011 01:35:54 +0000 (01:35 +0000)]
When we're deserializing a template parameter declaration, temporarily
use the translation unit as its declaration context, then deserialize
the actual lexical and semantic DeclContexts after the template
parameter is complete. This avoids problems when the DeclContext
itself (e.g., a class template) is dependent on the template parameter
(e.g., for the injected-class-name).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127056 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCurrently we can only remap a file by creating a MemoryBuffer and replacing the file...
Argyrios Kyrtzidis [Sat, 5 Mar 2011 01:03:53 +0000 (01:03 +0000)]
Currently we can only remap a file by creating a MemoryBuffer and replacing the file contents with it.
Allow remapping a file by specifying another filename whose contents should be loaded if the original
file gets loaded. This allows to override files without having to create & load buffers in advance.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127052 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIntroduce OwnsRemappedFileBuffers field in ASTUnit, indicating whether the ASTUnit...
Argyrios Kyrtzidis [Sat, 5 Mar 2011 01:03:48 +0000 (01:03 +0000)]
Introduce OwnsRemappedFileBuffers field in ASTUnit, indicating whether the ASTUnit should delete the remapped buffers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127051 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoGive warnings about static initializers of non-integral type their own warning
Nick Lewycky [Sat, 5 Mar 2011 00:32:47 +0000 (00:32 +0000)]
Give warnings about static initializers of non-integral type their own warning
flag so it can be individually controlled. The new flag is
  -Wc++0x-static-nonintegral-init.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127050 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen diagnostics are suppressed (e.g., because of code completion), don't trigger...
Douglas Gregor [Fri, 4 Mar 2011 23:08:02 +0000 (23:08 +0000)]
When diagnostics are suppressed (e.g., because of code completion), don't trigger the ExprTemplates.empty() check at the end of a function body

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127046 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDiagnose destructor templates. Fixes PR7904.
Douglas Gregor [Fri, 4 Mar 2011 22:45:55 +0000 (22:45 +0000)]
Diagnose destructor templates. Fixes PR7904.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127042 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen clearing a LookupResult structure, clear out the naming class,
Douglas Gregor [Fri, 4 Mar 2011 22:32:08 +0000 (22:32 +0000)]
When clearing a LookupResult structure, clear out the naming class,
too. Fixes PR7900.

While I'm in this area, improve the diagnostic when the type being
destroyed doesn't match either of the types we found.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127041 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoInitialize variable.
Bill Wendling [Fri, 4 Mar 2011 21:46:03 +0000 (21:46 +0000)]
Initialize variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127039 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach Sema::ActOnCXXNestedNameSpecifier and Sema::CheckTemplateIdType
Douglas Gregor [Fri, 4 Mar 2011 21:37:14 +0000 (21:37 +0000)]
Teach Sema::ActOnCXXNestedNameSpecifier and Sema::CheckTemplateIdType
to cope with non-type templates by providing appropriate
errors. Previously, we would either assert, crash, or silently build a
dependent type when we shouldn't. Fixes PR9226.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127037 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAfter an error of any kind has occurred, don't assert when attempting
Douglas Gregor [Fri, 4 Mar 2011 20:42:52 +0000 (20:42 +0000)]
After an error of any kind has occurred, don't assert when attempting
to find the instantiated declaration within a template instantiation
fails to do so. It's likely that the original instantiation got
dropped due to instantiation failures, which doesn't actually break
the invariants of the AST. This eliminates a number of
crash-on-invalid failures, e.g., PR9300.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127030 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPatch up several Sema::FindInstantiatedDecl() callers, so that they'll
Douglas Gregor [Fri, 4 Mar 2011 19:46:35 +0000 (19:46 +0000)]
Patch up several Sema::FindInstantiatedDecl() callers, so that they'll
properly cope with NULL return values.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127024 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEmit a stop point before a call expression so that debugger has some chance of gettin...
Devang Patel [Fri, 4 Mar 2011 18:54:42 +0000 (18:54 +0000)]
Emit a stop point before a call expression so that debugger has some chance of getting some footing when user wants to stop at 2nd bar() in following expression when all function calls are inlined.
  = bar() + ... + bar() + ...

clang keeps track of column numbers, so we could put location entries for all subexpressions but that will significantly bloat debug info in general, but a location for call expression is helpful here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127018 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen constructing source-location information for a
Douglas Gregor [Fri, 4 Mar 2011 18:53:13 +0000 (18:53 +0000)]
When constructing source-location information for a
DependentTemplateSpecializationType during tree transformation, retain
the NestedNameSpecifierLoc as it was used to translate the template
name, rather than reconstructing it from the template name.

Fixes PR9401.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127015 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago*Recursively* set the context of a template parameter, so that we also
Douglas Gregor [Fri, 4 Mar 2011 18:32:38 +0000 (18:32 +0000)]
*Recursively* set the context of a template parameter, so that we also
capture the template parameters of template template parameters.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127012 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake sure to put template parameters into their owning template's
Douglas Gregor [Fri, 4 Mar 2011 17:52:15 +0000 (17:52 +0000)]
Make sure to put template parameters into their owning template's
DeclContext once we've created it. This mirrors what we do for
function parameters, where the parameters start out with
translation-unit context and then are adopted by the appropriate
DeclContext when it is created. Also give template parameters public
access and make sure that they don't show up for the purposes of name
lookup.

Fixes PR9400, a regression introduced by r126920, which implemented
substitution of default template arguments provided in template
template parameters (C++ core issue 150).

How on earth could the DeclContext of a template parameter affect the
handling of default template arguments?

I'm so glad you asked! The link is
Sema::getTemplateInstantiationArgs(), which determines the outer
template argument lists that correspond to a given declaration. When
we're instantiating a default template argument for a template
template parameter within the body of a template definition (not it's
instantiation, per core issue 150), we weren't getting any outer
template arguments because the context of the template template
parameter was the translation unit. Now that the context of the
template template parameter is its owning template, we get the
template arguments from the injected-class-name of the owning
template, so substitution works as it should.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127004 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed source range for function template specializations.
Abramo Bagnara [Fri, 4 Mar 2011 17:20:30 +0000 (17:20 +0000)]
Fixed source range for function template specializations.

template <class T> void foo();
template <> void foo<int>(); /* Spec 1 */
template <> void foo<int>(); /* Spec 2 */

If we look at the main location of the first explicit specialization (Spec 1) it can be seen that it points to the name of the *second* explicit specialization (Spec 2), which is a redeclaration of Spec1.
Hence, the source range obtained for Spec1 is not only inaccurate, but also invalid (the end location comes before the start location).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127002 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed source range for ClassTemplateSpecializationDecl.
Abramo Bagnara [Fri, 4 Mar 2011 14:20:30 +0000 (14:20 +0000)]
Fixed source range for ClassTemplateSpecializationDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126999 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove private structs into anonymous namespaces.
Benjamin Kramer [Fri, 4 Mar 2011 13:12:48 +0000 (13:12 +0000)]
Move private structs into anonymous namespaces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126997 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImproved TemplateTypeParmDecl end location.
Abramo Bagnara [Fri, 4 Mar 2011 12:42:03 +0000 (12:42 +0000)]
Improved TemplateTypeParmDecl end location.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126996 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed end location of NonTypeTemplateParamDecl.
Abramo Bagnara [Fri, 4 Mar 2011 11:03:48 +0000 (11:03 +0000)]
Fixed end location of NonTypeTemplateParamDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126994 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed end location of FriendDecl.
Abramo Bagnara [Fri, 4 Mar 2011 10:59:18 +0000 (10:59 +0000)]
Fixed end location of FriendDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126993 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't consider visibility from template parameter lists if we're
John McCall [Fri, 4 Mar 2011 10:39:25 +0000 (10:39 +0000)]
Don't consider visibility from template parameter lists if we're
computing for a nested decl with explicit visibility.  This is all part
of the general philosophy of explicit visibility attributes, where
any information that was obviously available at the attribute site
should probably be ignored.  Fixes PR9371.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126992 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAccess ivars with inbounds GEPs, even in -fwrapv. It's unlikely that
John McCall [Fri, 4 Mar 2011 08:25:59 +0000 (08:25 +0000)]
Access ivars with inbounds GEPs, even in -fwrapv.  It's unlikely that
this can have any optimization effect, given the opacity of objects pointers,
but you never know.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126990 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoLet's do super message sends with static allocas instead of dynamic ones.
John McCall [Fri, 4 Mar 2011 08:00:29 +0000 (08:00 +0000)]
Let's do super message sends with static allocas instead of dynamic ones.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126989 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake AttributedTypes for GC-qualified types and fix some miscellaneous
John McCall [Fri, 4 Mar 2011 04:00:19 +0000 (04:00 +0000)]
Make AttributedTypes for GC-qualified types and fix some miscellaneous
bugs with such types.  Not sure this is quite how I want the desugaring
and a.k.a. logic to go, but it suffices.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126986 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrectly handle nested switch statements in CFGBuilder when on switch statement...
Ted Kremenek [Fri, 4 Mar 2011 01:03:41 +0000 (01:03 +0000)]
Correctly handle nested switch statements in CFGBuilder when on switch statement has a condition that evaluates to a constant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126977 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago-Woverloaded-virtual shouldn't warn for static functions. Fixes rdar://9083431 &...
Argyrios Kyrtzidis [Thu, 3 Mar 2011 22:58:57 +0000 (22:58 +0000)]
-Woverloaded-virtual shouldn't warn for static functions. Fixes rdar://9083431 & http://llvm.org/PR9396.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126966 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR9390 in not one, but two ways:
Douglas Gregor [Thu, 3 Mar 2011 21:48:55 +0000 (21:48 +0000)]
Fix PR9390 in not one, but two ways:

  1) When we do an instantiation of the injected-class-name type,
  provide a proper source location. This is just plain good hygiene.

  2) When we're building a NestedNameSpecifierLoc from a CXXScopeSpec,
  only return an empty NestedNameSpecifierLoc if there's no
  representation.

Both problems contributed to the horrible test case in PR9390 that I
couldn't reduce down to something palatable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126961 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEncode argument numbering in debug info so that code generator can emit them in order.
Devang Patel [Thu, 3 Mar 2011 20:13:15 +0000 (20:13 +0000)]
Encode argument numbering in debug info so that code generator can emit them in order.
This fixes few blocks.exp regressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126960 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed source range for LabelDecl.
Abramo Bagnara [Thu, 3 Mar 2011 18:24:14 +0000 (18:24 +0000)]
Fixed source range for LabelDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126952 91177308-0d34-0410-b5e6-96231b3b80d8