Manuel Klimek [Tue, 22 Oct 2013 08:27:19 +0000 (08:27 +0000)]
Remove incorrect assert.
If we run into the second preprocessor branch chain, the first branch
chain might have already set the maximum branch count on that level to
something > 0.
Fixes PR17645.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193153
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 22 Oct 2013 08:09:47 +0000 (08:09 +0000)]
Allow a header to be part of multiple modules.
This patch changes two things:
a) Allow a header to be part of multiple modules. The reasoning is that
in existing codebases that have a module-like build system, the same
headers might be used in several build targets. Simple reasons might be
that they defined different classes that are declared in the same
header. Supporting a header as a part of multiple modules will make the
transistion easier for those cases. A later step in clang can then
determine whether the two modules are actually compatible and can be
merged and error out appropriately. The later check is similar to what
needs to be done for template specializations anyway.
b) Allow modules to be stored in a directory tree separate from the
headers they describe.
Review: http://llvm-reviews.chandlerc.com/D1951
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193151
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 22 Oct 2013 04:14:18 +0000 (04:14 +0000)]
Sema: Do not allow template declarations inside local classes
Summary:
Enforce the rule in C++11 [temp.mem]p2 that local classes cannot have
member templates.
This fixes PR16947.
N.B. C++14 has slightly different wording to afford generic lambdas
declared inside of functions.
Fun fact: Some formulations of local classes with member templates
would cause clang to crash during Itanium mangling, such as the
following:
void outer_mem() {
struct Inner {
template <typename = void>
struct InnerTemplateClass {
static void itc_mem() {}
};
};
Inner::InnerTemplateClass<>::itc_mem();
}
Reviewers: eli.friedman, rsmith, doug.gregor, faisalv
Reviewed By: doug.gregor
CC: cfe-commits, ygao
Differential Revision: http://llvm-reviews.chandlerc.com/D1866
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193144
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 21 Oct 2013 22:56:09 +0000 (22:56 +0000)]
Revert "Re-enable passing MS inline asm test."
Microsoft inline asm crashes on the hexagon bot for unknown reasons.
This reverts commit r193124.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193128
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 21 Oct 2013 22:30:53 +0000 (22:30 +0000)]
Re-enable passing MS inline asm test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193124
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 21 Oct 2013 22:26:36 +0000 (22:26 +0000)]
Revert "Refactor DynTypedMatcher into a value type class, just like Matcher<T>."
This reverts commit r193100.
It was failing to compile with MSVC 2012 while instantiating
llvm::Optional<DynTypedMatcher>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193123
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Wailes [Mon, 21 Oct 2013 20:54:06 +0000 (20:54 +0000)]
Updated and added to the Consumed documentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193120
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 21 Oct 2013 20:12:01 +0000 (20:12 +0000)]
[AArch64] Add the constraint to NEON scalar mla/mls instructions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193118
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaron Keren [Mon, 21 Oct 2013 20:07:37 +0000 (20:07 +0000)]
Fix string assignment, David Blaikie suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193116
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 21 Oct 2013 19:48:28 +0000 (19:48 +0000)]
Make this test pass -verify.
Instead of using not, just drop the fastcall attribute which was causing
an warning:
calling convention 'fastcall' ignored for this target
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193110
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 21 Oct 2013 18:49:56 +0000 (18:49 +0000)]
Ignore -fstrength-reduce and -fno-strength-reduce.
GCC does the same.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193103
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Mon, 21 Oct 2013 18:40:51 +0000 (18:40 +0000)]
Refactor DynTypedMatcher into a value type class, just like Matcher<T>.
Summary:
Refactor DynTypedMatcher into a value type class, just like Matcher<T>.
This simplifies its usage and removes the virtual hierarchy from Matcher<T>.
It also enables planned changes to replace MatcherInteface<T>.
Too many instantiaions of this class hierarchy has been causing Registry.cpp.o to bloat in size and number of symbols.
Reviewers: klimek
CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D1661
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193100
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 21 Oct 2013 18:24:30 +0000 (18:24 +0000)]
Extend test to show an alias can be before a definition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193099
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 21 Oct 2013 17:34:39 +0000 (17:34 +0000)]
Cleanup redundant include.
Patch by Daniel Marjamäki.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193093
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 21 Oct 2013 12:33:55 +0000 (12:33 +0000)]
Driver: Various string-related cleanups.
Also fixes some funky formatting.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193079
91177308-0d34-0410-b5e6-
96231b3b80d8
Matheus Almeida [Mon, 21 Oct 2013 11:47:56 +0000 (11:47 +0000)]
[mips][msa] Fix definition of SLD instruction.
The second parameter of the SLD intrinsic is the number of columns (GPR) to
slide left the source array.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193076
91177308-0d34-0410-b5e6-
96231b3b80d8
Silviu Baranga [Mon, 21 Oct 2013 10:59:33 +0000 (10:59 +0000)]
Set the default hardware division features for ARM cpus. Also set it as default for A32 armv8.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193075
91177308-0d34-0410-b5e6-
96231b3b80d8
Silviu Baranga [Mon, 21 Oct 2013 10:54:53 +0000 (10:54 +0000)]
Add the __ARM_ARCH_EXT_IDIV__ predefine. It is set to 1 if we have hardware divide in the mode that we are compiling in (depending on the target features), not defined if we don't. Should be compatible with the GCC conterpart. Also adding a -hwdiv option to overide the default behavior.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193074
91177308-0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Mon, 21 Oct 2013 09:34:44 +0000 (09:34 +0000)]
Fix to PR8880 (clang dies processing a for loop).
Due to statement expressions supported as GCC extension, it is possible
to put 'break' or 'continue' into a loop/switch statement but outside its
body, for example:
for ( ; ({ if (first) { first = 0; continue; } 0; }); )
Such usage must be diagnosed as an error, GCC rejects it. To recognize
this and similar patterns the flags BreakScope and ContinueScope are
temporarily turned off while parsing condition expression.
Differential Revision: http://llvm-reviews.chandlerc.com/D1762
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193073
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Mon, 21 Oct 2013 08:11:15 +0000 (08:11 +0000)]
Fixes PR17617: Crash on joining short if statements.
Now that we iterate on the formatting multiple times when we
have chains of preprocessor branches, we need to correctly reset
the token's previous and next pointer for the first / last token.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193071
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 21 Oct 2013 06:34:34 +0000 (06:34 +0000)]
Expose -fmodule-name and -fmodule-map-file as driver options.
Review: http://llvm-reviews.chandlerc.com/D1974
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193069
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Mon, 21 Oct 2013 05:02:28 +0000 (05:02 +0000)]
Lex: Don't restrict legal UCNs when preprocessing assembly
The C and C++ standards disallow using universal character names to
refer to some characters, such as basic ascii and control characters,
so we reject these sequences in the lexer. However, when the
preprocessor isn't being used on C or C++, it doesn't make sense to
apply these restrictions.
Notably, accepting these characters avoids issues with unicode escapes
when GHC uses the compiler as a preprocessor on haskell sources.
Fixes rdar://problem/
14742289
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193067
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Mon, 21 Oct 2013 04:55:56 +0000 (04:55 +0000)]
[-fms-extensions] __is_interface_class was miscategorized
We claimed that the __is_interface_class keyword was KEYCXX even though
the __interface keyword was KEYMS.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193065
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Mon, 21 Oct 2013 00:25:32 +0000 (00:25 +0000)]
Sema: Explain our deviation from the standard by referencing the, now open, LWG issue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193062
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Mon, 21 Oct 2013 00:22:03 +0000 (00:22 +0000)]
Be more precise when diagnosing 'inline' on global replacement functions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193061
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Sun, 20 Oct 2013 21:29:19 +0000 (21:29 +0000)]
Implement function type checker for the undefined behavior sanitizer.
This uses function prefix data to store function type information at the
function pointer.
Differential Revision: http://llvm-reviews.chandlerc.com/D1338
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193058
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Sun, 20 Oct 2013 21:29:13 +0000 (21:29 +0000)]
Revert r193022 and r193048. They broke the ubsan test suite.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193057
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Sun, 20 Oct 2013 19:04:19 +0000 (19:04 +0000)]
Switch attribute test line endings from CRLF
The convention is LF unless specifically testing line endings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193056
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Sun, 20 Oct 2013 18:48:56 +0000 (18:48 +0000)]
Fix crash in cleanup attr handling
ResolveSingleFunctionTemplateSpecialization() returns 0 and doesn't emit diags
unless the expression has template-ids, so we must null check the result.
Also add a better diag noting which overloads are causing the problem.
Reviewed by Aaron Ballman.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193055
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 20 Oct 2013 18:15:30 +0000 (18:15 +0000)]
clang-format: Better understand Lambda poarameters.
Before:
auto PointerBinding = [](const char * S) {};
After:
auto PointerBinding = [](const char *S) {};
This fixes llvm.org/PR17618.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193054
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 20 Oct 2013 17:28:32 +0000 (17:28 +0000)]
clang-format: Fix formatting of nested blocks after comment.
Before:
DEBUG({ // Comment that used to confuse clang-format.
fdafas();
});
Before:
DEBUG({ // Comments are now fine.
fdafas();
});
This fixed llvm.org/PR17619.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193051
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 20 Oct 2013 16:56:16 +0000 (16:56 +0000)]
clang-format: Support case ranges.
Before (note the missing space before "..." which can lead to compile
errors):
switch (x) {
case 'A'... 'Z':
case 1... 5:
break;
}
After:
switch (x) {
case 'A' ... 'Z':
case 1 ... 5:
break;
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193050
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sun, 20 Oct 2013 16:45:46 +0000 (16:45 +0000)]
clang-format: Improve formatting of ObjC dict literals.
Before:
NSDictionary *d = @{ @"nam" : NSUserNam(), @"dte" : [NSDate date],
@"processInfo" : [NSProcessInfo processInfo]
};
After:
NSDictionary *d = @{
@"nam" : NSUserNam(),
@"dte" : [NSDate date],
@"processInfo" : [NSProcessInfo processInfo]
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193049
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 20 Oct 2013 12:34:18 +0000 (12:34 +0000)]
Driver: libubsan_cxx depends on libubsan. Preserve the topological ordering, some linkers depend on it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193048
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 20 Oct 2013 11:53:20 +0000 (11:53 +0000)]
Forgot some references to misspelled enums.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193047
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 20 Oct 2013 11:47:15 +0000 (11:47 +0000)]
Miscellaneous speling fixes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193046
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sun, 20 Oct 2013 05:40:29 +0000 (05:40 +0000)]
Sema: Diagnose global replacement functions declared as inline
This fixes PR17591.
N.B. This actually goes beyond what the standard mandates by requiring
the restriction to hold for declarations instead of definitions. This
is believed to be a defect in the standard and an LWG issue has been
submitted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193044
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 19 Oct 2013 21:06:31 +0000 (21:06 +0000)]
Add a missing getMostRecentDecl to ClassTemplateDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193040
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 19 Oct 2013 16:55:03 +0000 (16:55 +0000)]
Simplify some implementations of get*Decl.
* NamedDecl and CXXMethodDecl were missing getMostRecentDecl.
* The const version can just forward to the non const.
* getMostRecentDecl can use cast instead of cast_or_null.
This then removes some casts from the callers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193039
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 19 Oct 2013 16:14:07 +0000 (16:14 +0000)]
This should use the possessive adjective.
Thanks to David Blaikie for noticing it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193037
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 19 Oct 2013 13:08:51 +0000 (13:08 +0000)]
Comment improvement.
Thanks to Sean Silva for the suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193036
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 19 Oct 2013 08:33:11 +0000 (08:33 +0000)]
Add irreader to the component list, because ParseIR is called.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193032
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 19 Oct 2013 02:28:17 +0000 (02:28 +0000)]
Reduce indentation with an early exit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193028
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 19 Oct 2013 02:13:21 +0000 (02:13 +0000)]
Add isFirstDecl to DecBase too and use it instead of getPreviousDecl() == 0.
Redeclarable already had a isFirstDecl, but it was missing from DeclBase.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193027
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 19 Oct 2013 02:06:23 +0000 (02:06 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193026
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 19 Oct 2013 01:37:17 +0000 (01:37 +0000)]
Simplify FunctionDecl::getBody.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193025
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 19 Oct 2013 00:27:23 +0000 (00:27 +0000)]
When building ubsan, link in ubsan parts first and sanitizer-common second, to
pick up the common bits ubsan actually needs. Also remove whole-archive when we
aren't trying to re-export the symbols.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193022
91177308-0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Sat, 19 Oct 2013 00:05:00 +0000 (00:05 +0000)]
Allow CorrectTypo to replace CXXScopeSpecifiers that refer to classes.
Now that CorrectTypo knows how to correctly search classes for typo
correction candidates, there is no good reason to only replace an
existing CXXScopeSpecifier if it refers to a namespace. While the actual
enablement was a matter of changing a single comparison, the fallout
from enabling the functionality required a lot more code changes
(including my two previous commits).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193020
91177308-0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Sat, 19 Oct 2013 00:04:52 +0000 (00:04 +0000)]
Be smarter about deciding to add a leading '::' to a
NestedNameSpecifier that replaces an existing specifier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193019
91177308-0d34-0410-b5e6-
96231b3b80d8
Kaelyn Uhrain [Sat, 19 Oct 2013 00:04:49 +0000 (00:04 +0000)]
Merge NamespaceSpecifierSet's AddNamespace and AddRecord as they are
essentially the same.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193018
91177308-0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 18 Oct 2013 23:11:49 +0000 (23:11 +0000)]
Consumed analysis: fix assert failure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193010
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 18 Oct 2013 22:49:04 +0000 (22:49 +0000)]
clang-cl: diagnose setting asm listing filename with multiple inputs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193006
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 18 Oct 2013 22:48:20 +0000 (22:48 +0000)]
Fix crash if a submodule @imports another submodule from the same module. The
test also adds FIXMEs for a number of places where imports and includes of
submodules don't work very well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193005
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 18 Oct 2013 21:20:34 +0000 (21:20 +0000)]
ObjectiveC. Added support for methods annotated with format_arg
attributes when such methods are actually envoked in message
expression. // rdar://
15242010
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193003
91177308-0d34-0410-b5e6-
96231b3b80d8
Ariel J. Bernal [Fri, 18 Oct 2013 19:48:31 +0000 (19:48 +0000)]
Reverted r192992 broke windows and freebsd builds.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192997
91177308-0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 18 Oct 2013 19:25:18 +0000 (19:25 +0000)]
Consumed analysis: assume that non-const reference parameters are initially
in the "uknown" state. Patch by chris.wailes@gmail.com. Reviewed by delesley.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192995
91177308-0d34-0410-b5e6-
96231b3b80d8
Ariel J. Bernal [Fri, 18 Oct 2013 18:38:24 +0000 (18:38 +0000)]
This patch fixes replacements that are not applied when relative paths are
specified.
In particular it makes sure that relative paths for non-virtual files aren't
made absolute.
Added unittest.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192992
91177308-0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Fri, 18 Oct 2013 18:36:21 +0000 (18:36 +0000)]
Consumed analysis: All the return_typestate parameter to be attached to the
default constructor. Patch by chris.wailes@gmail.com, reviewed by delesley.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192991
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 18 Oct 2013 17:20:57 +0000 (17:20 +0000)]
clang-format: Be more aggressive on incorrect code.
Before, clang-format would not adjust leading indents if it found a
structural error (e.g. unmatched {}). It seems, however, that
clang-format has gotten good enough at parsing the code structure that
this hurts in almost all cases. Commonly, while writing code, it is
very useful to be able to correclty indent incomplete if statements or
for loops.
In case this leads to errors that we don't anticipate, we need to find
out and fix those.
This fixed llvm.org/PR17594.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192988
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 18 Oct 2013 16:47:55 +0000 (16:47 +0000)]
clang-format: Don't force linebreak between return and multiline string.
This looks ugly and leads to llvm.org/PR17590.
Before (with AlwaysBreakBeforeMultilineStrings):
return
"aaaa"
"bbbb";
After:
return "aaaa"
"bbbb";
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192984
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 18 Oct 2013 16:34:40 +0000 (16:34 +0000)]
Make clang-format slightly more willing to break before trailing annotations.
Specifically, prefer breaking before trailing annotations over breaking
before the first parameter.
Before:
void
ffffffffffffffffffffffff(
int
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
int
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) OVERRIDE;
After:
void
ffffffffffffffffffffffff(int
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
int
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
OVERRIDE;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192983
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 18 Oct 2013 15:48:58 +0000 (15:48 +0000)]
Add another MinGW header include path
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192982
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 18 Oct 2013 15:23:06 +0000 (15:23 +0000)]
clang-format: Improve formatting of templated builder-type calls.
Before:
aaaaaaaaaaaaaaaaaaaaaaaaaaa.
aaaaaaaaaaaaaaaaaa().
aaaaaaaaaaaaaaaaa().has<
bbbbbbbbbbbbbbbbbbbbb>();
After:
aaaaaaaaaaaaaaaaaaaaaaaaaaa.
aaaaaaaaaaaaa()
.
aaaaaaaaaaaaaaaaaaaaaaaaaa()
.has<
bbbbbbbbbbbbbbbbbbbbb>();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192981
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 18 Oct 2013 14:03:36 +0000 (14:03 +0000)]
[AArch64] Add support for NEON scalar extract narrow instructions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192971
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Fri, 18 Oct 2013 13:13:53 +0000 (13:13 +0000)]
[Mips] Define __mips_fpr and _MIPS_FPSET macros.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192969
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 18 Oct 2013 10:38:14 +0000 (10:38 +0000)]
clang-format: Make continuation indent width configurable.
Patch by Kim Gräsman. Thank you!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192964
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 18 Oct 2013 06:54:39 +0000 (06:54 +0000)]
C++ modules: don't lose track of a 'namespace std' that is imported from a module.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192951
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 18 Oct 2013 06:05:18 +0000 (06:05 +0000)]
Basic ODR checking for C++ modules:
If we have multiple definitions of the same entity from different modules, we
nominate the first definition which we see as being the canonical definition.
If we load a declaration from a different definition and we can't find a
corresponding declaration in the canonical definition, issue a diagnostic.
This is insufficient to prevent things from going horribly wrong in all cases
-- we might be in the middle of emitting IR for a function when we trigger some
deserialization and discover that it refers to an incoherent piece of the AST,
by which point it's probably too late to bail out -- but we'll at least produce
a diagnostic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192950
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Fri, 18 Oct 2013 05:54:24 +0000 (05:54 +0000)]
Check "late parsed" friend functions for redefinition
r177003 applied the late parsed template technique to friend functions
but omitted the corresponding check for redefinitions.
This patch adds the same check already in use for templates to the
new code path in order to diagnose and reject invalid redefinitions
that were being silently accepted.
Fixes PR17324.
Reviewed by Richard Smith.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192948
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Fri, 18 Oct 2013 05:54:19 +0000 (05:54 +0000)]
Fix missed exception spec checks and crashes
Delayed exception specification checking for defaulted members and virtual
destructors are both susceptible to mutation during iteration so we need to
swap and process the worklists.
This resolves both accepts-invalid and rejects-valid issues and moreover fixes
potential invalid memory access as the contents of the vectors change during
iteration and recursive template instantiation.
Checking can be further delayed where parent classes aren't yet fully defined.
This patch adds two assertions at end of TU to ensure no specs are left
unchecked as was happenning before the fix, plus a test case from Marshall Clow
for the defaulted member crash extracted from the libcxx headers.
Reviewed by Richard Smith.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192947
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 18 Oct 2013 05:00:41 +0000 (05:00 +0000)]
False. GCC does not accept [[gnu::warn_unused]], not to be confused with [[gnu::warn_unused_result]] which does exist.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192946
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 18 Oct 2013 01:34:56 +0000 (01:34 +0000)]
Fix 80-column violation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192937
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 18 Oct 2013 00:33:31 +0000 (00:33 +0000)]
[-fms-extensions] Permit 'override' in C++98 and 'sealed' as a synonym for 'final'
Summary: Some MS headers use these features.
Reviewers: rnk, rsmith
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1948
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192936
91177308-0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Thu, 17 Oct 2013 23:23:53 +0000 (23:23 +0000)]
Consumed analysis: Add param_typestate attribute, which specifies that
function parameters must be in a particular state. Patch by
chris.wailes@gmail.com. Reviewed by delesley@google.com.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192934
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 17 Oct 2013 23:13:13 +0000 (23:13 +0000)]
ObjectiveC migrator. Minor clean up of my last patch.
No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192933
91177308-0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Thu, 17 Oct 2013 22:53:04 +0000 (22:53 +0000)]
Consumed Analysis: Allow parameters that are passed by non-const reference
to be treated as return values, and marked with the "returned_typestate"
attribute. Patch by chris.wailes@gmail.com; reviewed by delesley@google.com.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192932
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 17 Oct 2013 22:23:32 +0000 (22:23 +0000)]
ObjectiveC migrator. In infering NS_ENUM/NS_OPTIONS
macros, prefer the typedef immediately following the
enum declaration to the one preceeding it.
// rdar://
15200915
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192927
91177308-0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Thu, 17 Oct 2013 22:21:03 +0000 (22:21 +0000)]
Consumed analysis: update to previous test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192926
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 17 Oct 2013 21:30:27 +0000 (21:30 +0000)]
[ms-cxxabi] Error out on virtual function memptrs
These are uncommon and this is better than miscompiling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192923
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Thu, 17 Oct 2013 21:00:19 +0000 (21:00 +0000)]
Revert "Fix missed exception spec checks and crashes"
The changes caused the sanitizer bot to hang:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/2311
Needs investigation.
This reverts commit r192914.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192921
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 17 Oct 2013 20:41:18 +0000 (20:41 +0000)]
Make .asm a valid extension for assembly files
This is a common extension on Windows, and now clang will assemble them
instead of treating them as linker input which is the default for unknown
file types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192919
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Thu, 17 Oct 2013 19:12:03 +0000 (19:12 +0000)]
Fix missed exception spec checks and crashes
Delayed exception specification checking for defaulted members and virtual
destructors are both susceptible to mutation during iteration so we need to
process the worklists fully.
This resolves both accepts-invalid and rejects-valid issues and moreover fixes
potential invalid memory access as the contents of the vectors change during
iteration and recursive template instantiation.
This patch also adds two assertions at end of TU to ensure no specs are left
unchecked as was happenning before the fix, plus a test case from Marshall Clow
for the defaulted member crash extracted from the libcxx headers.
Reviewed by Richard Smith.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192914
91177308-0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Thu, 17 Oct 2013 18:19:31 +0000 (18:19 +0000)]
Consumed analysis: fix ICE in handling of loop source locations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192911
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 17 Oct 2013 18:12:50 +0000 (18:12 +0000)]
[AArch64] Add support for NEON scalar three register different instruction
class. The instruction class includes the signed saturating doubling
multiply-add long, signed saturating doubling multiply-subtract long, and
the signed saturating doubling multiply long instructions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192909
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 17 Oct 2013 16:16:23 +0000 (16:16 +0000)]
clang-cl: Add support for asm listings (/FA and /Fa)
This adds support for outputing the assembly to a file during compilation.
It does this by changing the compilation pipeling to not use the integrated
assembler, and keep the intermediate assembler file.
Differential Revision: http://llvm-reviews.chandlerc.com/D1946
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192902
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 17 Oct 2013 15:37:26 +0000 (15:37 +0000)]
Rename some functions for consistency.
Every other function in Redeclarable.h was using Decl instead of Declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192900
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Thu, 17 Oct 2013 14:55:58 +0000 (14:55 +0000)]
[mips] Added -mfp64 and -mfp32 options.
These options specify 64-bit FP registers and 32-bit FP registers respectively.
When using -mfp32, the FPU has 16x double-precision registers overlapping with
the 32x single-precision registers (each double-precision register overlaps
two single-precision registers).
When using -mfp64, the FPU has 32x double-precision registers overlapping with
the 32x single-precision registers (each double-precision register overlaps
with one single-precision register and has an additional 32-bits).
MSA requires -mfp64.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192899
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Thu, 17 Oct 2013 14:35:42 +0000 (14:35 +0000)]
[mips][msa] Update -mmsa help text and removed the hidden flag to better match conventions used by other targets
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192898
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Thu, 17 Oct 2013 13:57:25 +0000 (13:57 +0000)]
[mips][msa] Added most of the remaining builtins
Includes:
and.v, bmnz.v, bmz.v, bnz.[bhwdv], bz.[bhwdv], cfcmsa, ctcmsa, fcaf,
fcor, fcueq, fcul[et], fcun, fcune, fsaf, fsueq, fsul[et], fsun, fsune, ftrunc
hadd_[su].[hwd], hsub_[su].[hwd], insert.[bhw], insve.[bhw], ld.[bhwd],
move.v, nor.v, or.v, srar.[bhwd], srari.[bhwd], srlr.[bhwd], srlri.[bhwd],
st.[bhwd], subsus_u.[bhwd], subsuu_s.[bhwd], vshf.[bhwd], xor.v
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192896
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 17 Oct 2013 09:55:56 +0000 (09:55 +0000)]
Remove unicode characters, trailing whitespace from test case
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192877
91177308-0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Thu, 17 Oct 2013 09:11:45 +0000 (09:11 +0000)]
Follow-up to r192822: fix Clang assertion when building with -fexceptions
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192875
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitry Vyukov [Thu, 17 Oct 2013 08:06:19 +0000 (08:06 +0000)]
tsan: update docs
update docs for no_sanitize_thread attribute and blacklist
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192872
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 17 Oct 2013 04:13:35 +0000 (04:13 +0000)]
This is now passing. Uncomment and close out PR6281.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192869
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 17 Oct 2013 03:28:24 +0000 (03:28 +0000)]
Add support to the Clang driver for forwarding all of gfortran's flags
to GCC when asked to compile a fortran input.
This fixes a regression with essentially every Fortran compile since we
started rejecting unknown flags. Also moves a mis-classified gfortran
flag into the nicely documented set.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192867
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 17 Oct 2013 01:31:21 +0000 (01:31 +0000)]
Add the context that a function was created in as the context for the
function, not the context of the context.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192862
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 17 Oct 2013 01:29:48 +0000 (01:29 +0000)]
Add implementations of the MSVC barrier intrinsics
Summary:
These are deprecated in VS 2012 according to MSDN. They don't actually
compile down to any code. They prevent the compiler from reordering
memory accesses across the barrier, which is what a memory-clobbering
volatile asm does.
Reviewers: echristo
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1954
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192860
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Oct 2013 22:35:19 +0000 (22:35 +0000)]
ObjectiveC migrator. Remove blank lines
when inferring property from setter/getter
methods. // rdar://
15200949
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192853
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 16 Oct 2013 21:26:26 +0000 (21:26 +0000)]
Rename HandleTargetFeatures->handleTargetFeatures to match
everything else in the class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192851
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 16 Oct 2013 21:19:26 +0000 (21:19 +0000)]
Add preprocessor support for powerpc vsx.
The test should be expanded upon for more powerpc checking.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192849
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 16 Oct 2013 21:19:23 +0000 (21:19 +0000)]
Remove an old, seemingly out of date, comment.
The referenced script no longer seems to exist.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192848
91177308-0d34-0410-b5e6-
96231b3b80d8