]> granicus.if.org Git - clang/log
clang
10 years agoVector [Sema]. Vector "splats" which are truncated should have a warning
Fariborz Jahanian [Fri, 4 Apr 2014 19:33:39 +0000 (19:33 +0000)]
Vector [Sema]. Vector "splats" which are truncated should have a warning
with -Wconversion. // rdar://16502418

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

10 years agoAdd a test where the module map is overriden in the vfs
Ben Langmuir [Fri, 4 Apr 2014 16:42:53 +0000 (16:42 +0000)]
Add a test where the module map is overriden in the vfs

Specifically, we pass two -ivfsoverlay yaml files, and the topmost one
remaps the module map file.

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

10 years agoIn preparation for being able to use simple Boolean logic expressions involving capab...
Aaron Ballman [Fri, 4 Apr 2014 15:13:57 +0000 (15:13 +0000)]
In preparation for being able to use simple Boolean logic expressions involving capabilities, the semantics for attributes now looks through the types of the constituent parts of a capability expression instead of at the aggregate expression type.

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

10 years agoWhen printing types for the OpenCL kernel metadata, use the PrintingPolicy.
Joey Gouly [Fri, 4 Apr 2014 13:43:57 +0000 (13:43 +0000)]
When printing types for the OpenCL kernel metadata, use the PrintingPolicy.

This allows 'half' to be printed as 'half' and not as '__fp16'.

Patch by Fraser Cormack!

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

10 years ago[OPENMP][C++11] Renamed loop vars properly.
Alexey Bataev [Fri, 4 Apr 2014 10:02:14 +0000 (10:02 +0000)]
[OPENMP][C++11] Renamed loop vars properly.

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

10 years agoclang-format: Don't merge simple blocks in case statements.
Daniel Jasper [Fri, 4 Apr 2014 06:46:23 +0000 (06:46 +0000)]
clang-format: Don't merge simple blocks in case statements.

Before:
  switch (a) {
  case 1: { return 'a'; }
  }

After:
  switch (a) {
  case 1: {
    return 'a';
  }
  }

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

10 years agoBasic: rename VisualStudio to Windows
Saleem Abdulrasool [Fri, 4 Apr 2014 05:08:53 +0000 (05:08 +0000)]
Basic: rename VisualStudio to Windows

Visual Studio is the Integrated Development Environment.  The toolchain is
generally referred to MSVC.  Rename the target information to be more precise as
per the recommendation of Reid Kleckner.

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

10 years agoExtend -Wtautological-constant-out-of-range-compare to handle boolean values
Richard Trieu [Fri, 4 Apr 2014 04:13:47 +0000 (04:13 +0000)]
Extend -Wtautological-constant-out-of-range-compare to handle boolean values
better.  This warning will now trigger on the following conditionals:

bool b;
int i;

if (b > 1) {}  // always false
if (0 <= (i > 5)) {} // always true
if (-1 > b) {} // always false

Patch by Per Viberg.

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

10 years agoCodeGen: Don't create branch weight metadata from empty profiles
Justin Bogner [Fri, 4 Apr 2014 02:48:51 +0000 (02:48 +0000)]
CodeGen: Don't create branch weight metadata from empty profiles

If all of our weights are zero when calculating branch weights, it
means we haven't profiled the code in question. Avoid creating a
metadata node that says all branches are equally likely in this case.

The test also checks constructs that hit the other createBranchWeights
overload. These were already working.

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

10 years agoAdd clang-cl alias to allow users to disable c4005
Reid Kleckner [Fri, 4 Apr 2014 01:36:55 +0000 (01:36 +0000)]
Add clang-cl alias to allow users to disable c4005

If we ever want three or more aliases, at that point we should put MSVC
warning ids in DiagnosticGroups.td.  We can use that to support #pragma
warning.

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

10 years agoPut macro redefinition warnings under -Wmacro-redefined
Reid Kleckner [Fri, 4 Apr 2014 00:17:16 +0000 (00:17 +0000)]
Put macro redefinition warnings under -Wmacro-redefined

This is consistent with -Wbuiltin-macro-redefined, and puts this common
extension warning under a flag.

Reviewers: rsmith

Differential Revision: http://llvm-reviews.chandlerc.com/D3283

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

10 years agoTurn off -Wmissing-noreturn warning for blocks
Fariborz Jahanian [Thu, 3 Apr 2014 23:06:35 +0000 (23:06 +0000)]
Turn off -Wmissing-noreturn warning for blocks
as there is no way to attach this attribute to the
block literal. // rdar://16274746

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

10 years agovector [Sema]. Check for proper use of 's' char prefix
Fariborz Jahanian [Thu, 3 Apr 2014 19:43:01 +0000 (19:43 +0000)]
vector [Sema]. Check for proper use of 's' char prefix
(which indicates vector expression is a string of hex
values) instead of crashing in code gen. // rdar://16492792

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

10 years ago-fms-extensions: Error out on #pragma init_seg
Reid Kleckner [Thu, 3 Apr 2014 19:04:24 +0000 (19:04 +0000)]
-fms-extensions: Error out on #pragma init_seg

By ignoring this pragma with a warning, we're essentially miscompiling
the user's program.  WebKit / Blink use this pragma to disable dynamic
initialization and finalization of some static data, and running the
dtors crashes the program.

Error out for now, so that /fallback compiles the TU correctly with
MSVC.  This pragma should be implemented some time this month, and we
can remove this hack.

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

10 years agoRevert r205436:
Roman Divacky [Thu, 3 Apr 2014 18:04:52 +0000 (18:04 +0000)]
Revert r205436:

        Extend the SSE2 comment lexing to AVX2. Only 16byte align when not on AVX2.

        This provides some 3% speedup when preprocessing gcc.c as a single file.

The patch is wrong, it always uses SSE2, and when I fix that there's no speedup
at all. I am not sure where the 3% came from previously.

--Thi lie, and those below, will be ignored--

M    Lex/Lexer.cpp

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

10 years agoTeach getTemplateInstantiationPattern to deal with generic lambdas.
Faisal Vali [Thu, 3 Apr 2014 16:32:21 +0000 (16:32 +0000)]
Teach getTemplateInstantiationPattern to deal with generic lambdas.

No functionality change.

When determining the pattern for instantiating a generic lambda call operator specialization - we must not go drilling down for the 'prototype' (i.e. as written) pattern - rather we must use our partially transformed  pattern (whose DeclRefExprs are wired correctly to any enclosing lambda's decls that should be mapped correctly in a local instantiation scope) that is the templated pattern of the specialization's primary template (even though the primary template might be instantiated from a 'prototype' member-template).  Previously, the drilling down was haltted by marking the instantiated-from primary template as a member-specialization (incorrectly).

This prompted Richard to remark (http://llvm-reviews.chandlerc.com/D1784?id=4687#inline-10272)
"It's a bit nasty to (essentially) set this bit incorrectly. Can you put the check into getTemplateInstantiationPattern instead?"

In my reckless youth, I chose to ignore that comment.  With the passage of time, I have come to learn the value of bowing to the will of the angry Gods ;)

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

10 years agoCode cleanup (re-indent)
Logan Chien [Thu, 3 Apr 2014 13:12:44 +0000 (13:12 +0000)]
Code cleanup (re-indent)

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

10 years agoRevert "Add support for named values in the parser."
Samuel Benzaquen [Thu, 3 Apr 2014 12:50:47 +0000 (12:50 +0000)]
Revert "Add support for named values in the parser."
This was submitted before it was ready.

This reverts commit 62060a01e095cf35eb9ca42a333752d12714f35c.

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

10 years agoclang-format: Prefer an additional line-break over hanging indent.
Daniel Jasper [Thu, 3 Apr 2014 12:00:33 +0000 (12:00 +0000)]
clang-format: Prefer an additional line-break over hanging indent.

Don't allow the RHS of an operator to be split over multiple
lines unless there is a line-break right after the operator.

Before:
  if (aaaa && bbbbb || // break
                  cccc) {
  }

After:
  if (aaaa &&
      bbbbb || // break
          cccc) {
  }

In most cases, this seems to increase readability.

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

10 years agox
Daniel Jasper [Thu, 3 Apr 2014 12:00:27 +0000 (12:00 +0000)]
x

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

10 years agoImproved semantics for implicit scalar -> extvector conversions.
Stephen Canon [Thu, 3 Apr 2014 10:33:25 +0000 (10:33 +0000)]
Improved semantics for implicit scalar -> extvector conversions.

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

10 years agoclang-format: Understand that "auto" is a type.
Daniel Jasper [Thu, 3 Apr 2014 09:00:49 +0000 (09:00 +0000)]
clang-format: Understand that "auto" is a type.

Before:
  MACRO(auto * a);

After:
  MACRO(auto *a);

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

10 years ago[OPENMP] Small update for C++11
Alexey Bataev [Thu, 3 Apr 2014 02:55:46 +0000 (02:55 +0000)]
[OPENMP] Small update for C++11

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

10 years agoAllow ASTFile to be reset to null
Ben Langmuir [Thu, 3 Apr 2014 00:14:16 +0000 (00:14 +0000)]
Allow ASTFile to be reset to null

Which we do in removeModules().

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

10 years agoCodeGen: Emit some functions as weak_odr under -fms-compatibility
David Majnemer [Wed, 2 Apr 2014 23:17:29 +0000 (23:17 +0000)]
CodeGen: Emit some functions as weak_odr under -fms-compatibility

Summary:
MSVC always emits inline functions marked with the extern storage class
specifier.  The result is something similar to the opposite of
__attribute__((gnu_inline)).

This extension is also available in C.

This fixes PR19264.

Reviewers: rnk, rsmith

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3207

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

10 years agoObjective-C [IRGen]. Add encoding for 'weak' attribute of a
Fariborz Jahanian [Wed, 2 Apr 2014 22:49:42 +0000 (22:49 +0000)]
Objective-C [IRGen]. Add encoding for 'weak' attribute of a
'readonly' property. // rdar://16136439

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

10 years agoIf a using-declaration names a class member, but appears outside a class, try
Richard Smith [Wed, 2 Apr 2014 21:44:35 +0000 (21:44 +0000)]
If a using-declaration names a class member, but appears outside a class, try
to suggest a different syntax to get the same effect.

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

10 years agoPR19305: Don't issue -Wunused-variable warnings on variable templates. It's not
Richard Smith [Wed, 2 Apr 2014 18:28:36 +0000 (18:28 +0000)]
PR19305: Don't issue -Wunused-variable warnings on variable templates. It's not
meaningful to odr-use the VarDecl inside a variable template. (Separately, it'd
be nice to track referenced-ness for templates, and warn on unused ones, but
that's really a distinct issue...)

Move a test that generates and tests a warning-suppressing error out to its own
test file, so it doesn't have weird effects on the other tests in the same file.

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

10 years agoDebugInfo: Include default template arguments in template type names
David Blaikie [Wed, 2 Apr 2014 18:21:09 +0000 (18:21 +0000)]
DebugInfo: Include default template arguments in template type names

This was committed 4 years ago in 108916 with insufficient testing to
explain why the "getTypeAsWritten" case was appropriate. Experience says
that it isn't - the presence or absence of an explicit instantiation
declaration was causing this code to generate either i<int> or i<int,
int>.

That didn't seem to be a useful distinction, and omitting the template
arguments was destructive to debuggers being able to associate the two
types across translation units or across compilers (GCC, reasonably,
never omitted the arguments).

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

10 years agoExtend the SSE2 comment lexing to AVX2. Only 16byte align when not on AVX2.
Roman Divacky [Wed, 2 Apr 2014 17:27:03 +0000 (17:27 +0000)]
Extend the SSE2 comment lexing to AVX2. Only 16byte align when not on AVX2.

This provides some 3% speedup when preprocessing gcc.c as a single file.

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

10 years agoAdd matcher for ExprWithCleanups.
Samuel Benzaquen [Wed, 2 Apr 2014 13:12:14 +0000 (13:12 +0000)]
Add matcher for ExprWithCleanups.

Summary: Add matcher for ExprWithCleanups.

Reviewers: klimek

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D3248

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

10 years agoAdd support for named values in the parser.
Samuel Benzaquen [Wed, 2 Apr 2014 13:11:45 +0000 (13:11 +0000)]
Add support for named values in the parser.

Summary:
Add support for named values in the parser.
This allows injection of arbitrary constants using a custom Sema object.
Completions are not supported right now.

Will be used by clang_query to support the 'let' command.
Usage example:
  clang_query> let unique_ptr recordDecl(hasName("unique_ptr"))
  clang_query> match varDecl(hasType(unique_ptr))

Reviewers: klimek, pcc

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D3229

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

10 years agoSome more anonymous namespace diagnostics to switch to ()
David Blaikie [Wed, 2 Apr 2014 06:18:49 +0000 (06:18 +0000)]
Some more anonymous namespace diagnostics to switch to ()

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

10 years agoRender anonymous entities as '(anonymous <thing>)' (and lambdas as '(lambda at ....
David Blaikie [Wed, 2 Apr 2014 05:58:29 +0000 (05:58 +0000)]
Render anonymous entities as '(anonymous <thing>)' (and lambdas as '(lambda at ... )')

For namespaces, this is consistent with mangling and GCC's debug info
behavior. For structs, GCC uses <anonymous struct> but we prefer
consistency between all anonymous entities but don't want to confuse
them with template arguments, etc, so we'll just go with parens in all
cases.

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

10 years agoAdd the location of Decls to ast dump.
David Blaikie [Wed, 2 Apr 2014 05:48:29 +0000 (05:48 +0000)]
Add the location of Decls to ast dump.

While investigating some debug info issues, Eric and I came across a
particular template case where the location of a decl was quite
different from the range of the same decl. It might've been rather
helpful if the dumper had actually showed us this.

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

10 years agoFix type mismatch assertion related to inalloca and PR19287
Reid Kleckner [Wed, 2 Apr 2014 00:16:53 +0000 (00:16 +0000)]
Fix type mismatch assertion related to inalloca and PR19287

Augment the test case from r205217 to catch this related bug.

Fixes the Windows self-host which was failing on VariantValue.cpp.

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

10 years agoHarden this test against windows/changes.
Eric Christopher [Tue, 1 Apr 2014 22:54:59 +0000 (22:54 +0000)]
Harden this test against windows/changes.

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

10 years agoPartially revert r204517 and fix a different way:
Eric Christopher [Tue, 1 Apr 2014 22:25:28 +0000 (22:25 +0000)]
Partially revert r204517 and fix a different way:

We don't want to encourage the code to emit a lexical block for
a function that needs one in order for the line table to change,
we need to grab the line information from the body of the pattern
that we were instantiated from, this code should do that.

Modify the test case to ensure that we're still looking in the
right place for all of the scopes and also that we haven't
created a lexical block where we didn't need one.

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

10 years agoUpdating the capability attribute diagnostics to be more capability-neutral. Instead...
Aaron Ballman [Tue, 1 Apr 2014 21:43:23 +0000 (21:43 +0000)]
Updating the capability attribute diagnostics to be more capability-neutral. Instead of using terminology such as "lock", "unlock" and "locked", the new terminology is "acquire", "release" and "held". Additionally, the capability attribute's name argument is now reported as part of the diagnostic, instead of hard coding as "mutex."

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

10 years agoObjective-C modern translator. Fix declaration of
Fariborz Jahanian [Tue, 1 Apr 2014 19:32:35 +0000 (19:32 +0000)]
Objective-C modern translator. Fix declaration of
__NSConstantStringImpl's length field to accomodate
window's 64bit LLP64 mode. // rdar://16489050

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

10 years agoSimplify FunctionDecl::getMinRequiredArguments().
Richard Smith [Tue, 1 Apr 2014 19:18:16 +0000 (19:18 +0000)]
Simplify FunctionDecl::getMinRequiredArguments().

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

10 years agoFix self-referential comment.
Richard Smith [Tue, 1 Apr 2014 18:33:50 +0000 (18:33 +0000)]
Fix self-referential comment.

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

10 years agoMore tests for DR1.
Richard Smith [Tue, 1 Apr 2014 18:32:16 +0000 (18:32 +0000)]
More tests for DR1.

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

10 years agoDebug info: fix a crash when emitting IndirectFieldDecls, which were
Adrian Prantl [Tue, 1 Apr 2014 17:52:06 +0000 (17:52 +0000)]
Debug info: fix a crash when emitting IndirectFieldDecls, which were
previously not handled at all.
rdar://problem/16348575

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

10 years ago[analyzer] Extract a helper for finding the target region for a C++ constructor.
Jordan Rose [Tue, 1 Apr 2014 16:40:06 +0000 (16:40 +0000)]
[analyzer] Extract a helper for finding the target region for a C++ constructor.

No functionality change.

Patch by Alex McCarthy!

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

10 years ago[analyzer] Remove incorrect workaround for unimplemented temporary destructors.
Jordan Rose [Tue, 1 Apr 2014 16:39:59 +0000 (16:39 +0000)]
[analyzer] Remove incorrect workaround for unimplemented temporary destructors.

If we're trying to get the zero element region of something that's not a region,
we should be returning UnknownVal, which is what ProgramState::getLValue will
do for us.

Patch by Alex McCarthy!

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

10 years ago[analyzer] Fix a CFG printing bug.
Jordan Rose [Tue, 1 Apr 2014 16:39:33 +0000 (16:39 +0000)]
[analyzer] Fix a CFG printing bug.

Also, add several destructor-related tests. Most of them don't work yet, but it's
good to have them recorded.

Patch by Alex McCarthy!

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

10 years agoFixing the MSVC 2012 build bot, which cannot do initializer lists yet. Amends r205307.
Aaron Ballman [Tue, 1 Apr 2014 16:30:35 +0000 (16:30 +0000)]
Fixing the MSVC 2012 build bot, which cannot do initializer lists yet. Amends r205307.

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

10 years agoAdd support for dynamic ASan runtime (on Linux) to Clang driver.
Alexey Samsonov [Tue, 1 Apr 2014 13:31:10 +0000 (13:31 +0000)]
Add support for dynamic ASan runtime (on Linux) to Clang driver.

Based on http://llvm-reviews.chandlerc.com/D3043 by Yuri Gribov!

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

10 years agoclang-format: Support configurable list of foreach-macros.
Daniel Jasper [Tue, 1 Apr 2014 12:55:11 +0000 (12:55 +0000)]
clang-format: Support configurable list of foreach-macros.

This fixes llvm.org/PR17242.

Patch by Brian Green, thank you!

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

10 years agoARM64: add a few bits of polynomial intrinsic codegen.
Tim Northover [Tue, 1 Apr 2014 12:23:08 +0000 (12:23 +0000)]
ARM64: add a few bits of polynomial intrinsic codegen.

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

10 years agoARM64: add missing ldN/stN intrinsics and enable tests.
Tim Northover [Tue, 1 Apr 2014 10:37:47 +0000 (10:37 +0000)]
ARM64: add missing ldN/stN intrinsics and enable tests.

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

10 years agoAdd defensive check that argument may be null in call to compareConversionFunctions...
Ted Kremenek [Tue, 1 Apr 2014 07:23:18 +0000 (07:23 +0000)]
Add defensive check that argument may be null in call to compareConversionFunctions() on incorrect code.

I'm looking into getting a reduced test case, but it's not
immediately available.

Fixes <rdar://problem/16344806>

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

10 years agoMS ABI: Support mangling of return-types deducing to local types
David Majnemer [Tue, 1 Apr 2014 05:29:46 +0000 (05:29 +0000)]
MS ABI: Support mangling of return-types deducing to local types

The MS ABI forces us into catch-22 when it comes to functions which
return types which are local:

 - A function is mangled with it's return type.
 - A type is mangled with it's surrounding context.

Avoid this by mangling auto and decltype(autp) directly into the
function's return type.  Using this mangling has the double advantage of
being compatible with the C++ standard without crashing the compiler.

N.B. For the curious, the MSVC mangling leads to collisions amongst
template functions and either crashes when faced with local types or is
otherwise incapable of returning them.

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

10 years agoAdapt CGDebugInfo to interface changes in DIBuilder/DIImportedEntity.
Adrian Prantl [Tue, 1 Apr 2014 03:41:01 +0000 (03:41 +0000)]
Adapt CGDebugInfo to interface changes in DIBuilder/DIImportedEntity.
The Decl field in a DIImportedEntity is now a DIRef.
Paired commit with LLVM.

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

10 years ago[analyzer] Lock checker: Allow pthread_mutex_init to reinitialize a destroyed lock.
Jordan Rose [Tue, 1 Apr 2014 03:40:53 +0000 (03:40 +0000)]
[analyzer] Lock checker: Allow pthread_mutex_init to reinitialize a destroyed lock.

Patch by Daniel Fahlgren!

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

10 years ago[analyzer] Lock checker: make sure locks aren't used after being destroyed.
Jordan Rose [Tue, 1 Apr 2014 03:40:47 +0000 (03:40 +0000)]
[analyzer] Lock checker: make sure locks aren't used after being destroyed.

Patch by Daniel Fahlgren!

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

10 years ago[analyzer] Add double-unlock detection to PthreadLockChecker.
Jordan Rose [Tue, 1 Apr 2014 03:40:38 +0000 (03:40 +0000)]
[analyzer] Add double-unlock detection to PthreadLockChecker.

We've decided to punt on supporting recursive locks for now; the common case
is non-recursive.

Patch by Daniel Fahlgren!

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

10 years agoAdd failing testcase for DR305. Looks like we didn't implement the resolution
Richard Smith [Tue, 1 Apr 2014 01:58:11 +0000 (01:58 +0000)]
Add failing testcase for DR305. Looks like we didn't implement the resolution
here in the simple-template-id case.

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

10 years agoDisable this-return optimizations when targeting iOS 5 and earlier.
Bob Wilson [Tue, 1 Apr 2014 01:38:16 +0000 (01:38 +0000)]
Disable this-return optimizations when targeting iOS 5 and earlier.

Clang implements the part of the ARM ABI saying that certain functions
(e.g., constructors and destructors) return "this", but Apple's version of
gcc and llvm-gcc did not. The libstdc++ dylib on iOS 5 was built with
llvm-gcc, which means that clang cannot safely assume that code from the C++
runtime will correctly follow the ABI. It is also possible to run into this
problem when linking with other libraries built with gcc or llvm-gcc. Even
though there is no way to reliably detect that situation, it is most likely
to come up when targeting older versions of iOS. Disabling the optimization
for any code targeting iOS 5 solves the libstdc++ problem and has a reasonably
good chance of fixing the issue for other older libraries as well.
<rdar://problem/16377159>

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

10 years agoFix up compression related test cases
David Blaikie [Tue, 1 Apr 2014 00:27:28 +0000 (00:27 +0000)]
Fix up compression related test cases

Fallout from r205261, ensure it doesn't matter how we disable compressed
debug info, even if zlib is missing and that we warn when we don't have
zlib and don't warn when we do, all while silently suppressing these
tests on the systems they weren't intended for...

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

10 years agoMS ABI: Simplify MangleByte further
David Majnemer [Tue, 1 Apr 2014 00:05:57 +0000 (00:05 +0000)]
MS ABI: Simplify MangleByte further

It turns out that the ranges where the '?' <letter> manglings occur are
identical to the ranges of ASCII characters OR'd with 0x80.

Thanks to Richard Smith for the insight!

No functional change.

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

10 years agoComment necessity of early initialization
David Blaikie [Mon, 31 Mar 2014 23:47:13 +0000 (23:47 +0000)]
Comment necessity of early initialization

Code review feedback from Eric Christopher on r204261.

I didn't want to go into too much detail (the revision history should
provide the full stuff) - but I can add more if that's preferred.

Also moved this up to right by the construction of the MCAsmInfo so
there's less chance that other things might sneak in in between.

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

10 years agoWarn when requesting compress-debug-sections and zlib is not available
David Blaikie [Mon, 31 Mar 2014 23:29:38 +0000 (23:29 +0000)]
Warn when requesting compress-debug-sections and zlib is not available

Another shot in the dark, since I do have zlib installed. Will be
watching the bots for fallout.

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

10 years agoDebugInfo compression: Enable compression before any sections are created.
David Blaikie [Mon, 31 Mar 2014 23:13:30 +0000 (23:13 +0000)]
DebugInfo compression: Enable compression before any sections are created.

For those playing at home this produced some fairly subtle behavior. The
sections created in InitMCObjectFileInfo were created without compressed
debug info (a mistake, but not necessarily /broken). Since these
sections were almost always referenced by the existing MCSection object,
this almost worked.

This got weird when we got to handling the relocations for a section.
See ELFObjectWriter::WriteSection where we compute the true section for
a relocation section by simply stripping the ".rela" prefix and then
looking up that section - doing so hit the compression codepath, looked
up .zdebug_blah and found a newly constructed empty section... thus,
things got weird.

This is untestable without a cross-project test (let me know if people
would prefer that to no testing).

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

10 years agoImplement the 'optnone' attribute, which suppresses most optimizations
Paul Robinson [Mon, 31 Mar 2014 22:29:15 +0000 (22:29 +0000)]
Implement the 'optnone' attribute, which suppresses most optimizations
on a function.

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

10 years agoMS ABI: Add a test for Unicode literals
David Majnemer [Mon, 31 Mar 2014 21:46:09 +0000 (21:46 +0000)]
MS ABI: Add a test for Unicode literals

This adds coverage for Unicode code points which are encoded with
non-zero values in the upper half of the wchar_t.

No functionality change.

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

10 years agoMS ABI: Simplify endian swapping code
David Majnemer [Mon, 31 Mar 2014 21:46:05 +0000 (21:46 +0000)]
MS ABI: Simplify endian swapping code

No functionality change.

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

10 years agoRemove redundant template specialization that just duplicates the partial
Richard Smith [Mon, 31 Mar 2014 21:31:04 +0000 (21:31 +0000)]
Remove redundant template specialization that just duplicates the partial
specialization that would otherwise be selected.

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

10 years agoUnify __declspec attribute argument parsing with the common attribute argument parsin...
Aaron Ballman [Mon, 31 Mar 2014 18:18:43 +0000 (18:18 +0000)]
Unify __declspec attribute argument parsing with the common attribute argument parsing code.

This removes a diagnostic that is no longer required (the semantic engine now properly handles attribute syntax so __declspec and __attribute__ spellings no longer get mismatched). This caused several testcases to need updating for a slightly different wording.

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

10 years agoIntroduced an attribute syntax-neutral method for parsing attribute arguments that...
Aaron Ballman [Mon, 31 Mar 2014 17:32:39 +0000 (17:32 +0000)]
Introduced an attribute syntax-neutral method for parsing attribute arguments that is currently being used by GNU and C++-style attributes. This allows C++11 attributes with argument lists to be handled properly, fixing the "deprecated", "type_visibility", and capability-related attributes with arguments.

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

10 years agoMS ABI: mangleStringLiteral shouldn't rely on the host's endianness
David Majnemer [Mon, 31 Mar 2014 17:18:53 +0000 (17:18 +0000)]
MS ABI: mangleStringLiteral shouldn't rely on the host's endianness

No test case is needed, the one in-tree is sufficient.  The build-bot
never emailed me because something else had upset it.

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

10 years agoMS ABI: Document the '\xc1' to '\xda' manglings
David Majnemer [Mon, 31 Mar 2014 17:09:09 +0000 (17:09 +0000)]
MS ABI: Document the '\xc1' to '\xda' manglings

No functionality change.

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

10 years agoRemove unused diagnostic + dead test for it.
Benjamin Kramer [Mon, 31 Mar 2014 16:55:01 +0000 (16:55 +0000)]
Remove unused diagnostic + dead test for it.

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

10 years agoMS ABI: Make test introduced in r205217 more robust
David Majnemer [Mon, 31 Mar 2014 16:30:00 +0000 (16:30 +0000)]
MS ABI: Make test introduced in r205217 more robust

Don't assume any particular IR Value name, pattern match the names from
the GEP instructions instead.

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

10 years agoMS ABI: Use the proper type for inalloca args
David Majnemer [Mon, 31 Mar 2014 16:12:47 +0000 (16:12 +0000)]
MS ABI: Use the proper type for inalloca args

Summary:
The definition of a type later in a translation unit may change it's
type from {}* to (%struct.foo*)*.  Earlier function definitions may use
the former while more recent definitions might use the later.  This is
fine until they interact with one another (like one calling the other).
In these cases, a bitcast is needed because the inalloca must match the
function call but the store to the lvalue which initializes the argument
slot has to match the rvalue's type.

This technique is along the same lines with what the other,
non-inalloca, codepaths perform.

This fixes PR19287.

Reviewers: rnk

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3224

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

10 years agoARM64: enable aarch64-neon-intrinsics.c test
Tim Northover [Mon, 31 Mar 2014 15:47:09 +0000 (15:47 +0000)]
ARM64: enable aarch64-neon-intrinsics.c test

This adds support for the various NEON intrinsics used by
aarch64-neon-intrinsics.c (originally written for AArch64) and enables the
test.

My implementations are designed to be semantically correct, the actual code
quality looks like its a wash between the two backends, and is frequently
different (hence the large number of CHECK changes).

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

10 years agoPost-commit review coding style change: renaming HasAttribute to hasAttribute. No...
Aaron Ballman [Mon, 31 Mar 2014 15:26:40 +0000 (15:26 +0000)]
Post-commit review coding style change: renaming HasAttribute to hasAttribute. No functional changes.

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

10 years ago[OPENMP] clang-formatted include/clang/AST/StmtOpenMP.h
Alexander Musman [Mon, 31 Mar 2014 15:08:32 +0000 (15:08 +0000)]
[OPENMP] clang-formatted include/clang/AST/StmtOpenMP.h

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

10 years agoSema: Require external linkage for dll attributes
Nico Rieck [Mon, 31 Mar 2014 14:56:58 +0000 (14:56 +0000)]
Sema: Require external linkage for dll attributes

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

10 years agoSema: Check dll attributes on redeclarations
Nico Rieck [Mon, 31 Mar 2014 14:56:15 +0000 (14:56 +0000)]
Sema: Check dll attributes on redeclarations

A redeclaration may not add dllimport or dllexport attributes. dllexport is
sticky and can be omitted on redeclarations while dllimport cannot.

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

10 years agoclang-format: Solve issues found and fixed by clang-tidy.
Daniel Jasper [Mon, 31 Mar 2014 14:23:49 +0000 (14:23 +0000)]
clang-format: Solve issues found and fixed by clang-tidy.

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

10 years agoclang/tools/driver/Makefile: Quick fix corresponding to r205181.
NAKAMURA Takumi [Mon, 31 Mar 2014 14:11:11 +0000 (14:11 +0000)]
clang/tools/driver/Makefile: Quick fix corresponding to r205181.

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

10 years agoReapplying r204952 a second time.
Aaron Ballman [Mon, 31 Mar 2014 13:14:44 +0000 (13:14 +0000)]
Reapplying r204952 a second time.

Clean up the __has_attribute implementation without modifying its behavior.

Replaces the tablegen-driven AttrSpellings.inc, which lived in the lexing layer with AttrHasAttributeImpl.inc, which lives in the basic layer. Updates the preprocessor to call through to this new functionality which can take additional information into account (such as scopes and syntaxes).

Expose the ability for parts of the compiler to ask whether an attribute is supported for a given spelling (including scope), syntax, triple and language options.

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

10 years agoSlightly improve the readability of MicrosoftVTableContext::computeVTablePaths()...
Timur Iskhodzhanov [Mon, 31 Mar 2014 11:01:51 +0000 (11:01 +0000)]
Slightly improve the readability of MicrosoftVTableContext::computeVTablePaths().  No functionality changes.

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

10 years agoAdded _rdtsc intrinsics by Robert Khasanov
Alexey Volkov [Mon, 31 Mar 2014 08:08:46 +0000 (08:08 +0000)]
Added _rdtsc intrinsics by Robert Khasanov

Differential Revision: http://llvm-reviews.chandlerc.com/D3212

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

10 years agoRemove unused variable
Dmitri Gribenko [Mon, 31 Mar 2014 07:52:35 +0000 (07:52 +0000)]
Remove unused variable

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

10 years agoARM64: remove currently trivial switch statement
Tim Northover [Mon, 31 Mar 2014 07:20:13 +0000 (07:20 +0000)]
ARM64: remove currently trivial switch statement

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

10 years ago[OPENMP] Implemented 'copyin' clause
Alexey Bataev [Mon, 31 Mar 2014 03:36:38 +0000 (03:36 +0000)]
[OPENMP] Implemented 'copyin' clause

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

10 years agoAdd documentation for the pcs attribute, based on r129534's commit message.
Nico Weber [Sun, 30 Mar 2014 19:45:58 +0000 (19:45 +0000)]
Add documentation for the pcs attribute, based on r129534's commit message.

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

10 years agoRTTI: refactor the uniqueness question into CGCXXABI.
Tim Northover [Sun, 30 Mar 2014 17:32:48 +0000 (17:32 +0000)]
RTTI: refactor the uniqueness question into CGCXXABI.

This also brings the code into closer conformance with usual LLVM
coding style and other surrounding conventions.

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

10 years agoMS ABI: Correct typo in mangleStringLiteral
David Majnemer [Sun, 30 Mar 2014 16:38:02 +0000 (16:38 +0000)]
MS ABI: Correct typo in mangleStringLiteral

No functionality change.

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

10 years agoMS ABI: Simplify mangleTemplateArgs
David Majnemer [Sun, 30 Mar 2014 16:30:54 +0000 (16:30 +0000)]
MS ABI: Simplify mangleTemplateArgs

No functionality change.

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

10 years agoclang/test/Preprocessor/headermap-rel2.c: Recognize dos path.
NAKAMURA Takumi [Sun, 30 Mar 2014 15:09:08 +0000 (15:09 +0000)]
clang/test/Preprocessor/headermap-rel2.c: Recognize dos path.

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

10 years agoForce a header file input to the headermap test to have different
Chandler Carruth [Sun, 30 Mar 2014 14:04:32 +0000 (14:04 +0000)]
Force a header file input to the headermap test to have different
contents than the header file by the same name under the system header
search root. Surprisingly, this is required to get the test to pass on
some systems.

So, it turns out that there exist filesystems in the world which unique
the inode of all files based on their contents. This results in two
files with the same contents at different paths suddenly having the same
inode. This doesn't actually cause any problems in practice as the
contents are the same, and the path used to access the files are the
same. However, it can cause tests like this one to be more brittle
because the file manager ends up de-duplicating the file entries by
inode. We don't have any other really easy ways to observe the behavior
shift because the whole point is that the #include written in the source
code doesn't contain the information -- instead it is contained in the
header map.

If folks have other solutions they would prefer, I'm more than happy to
work on them, but this seems a reasonable way to ensure that the test in
question exercises the code it wants to exercise.

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

10 years ago[ARM64] Use %clang_cc1 consistently in the new arm64 codegen tests.
Chandler Carruth [Sun, 30 Mar 2014 13:40:57 +0000 (13:40 +0000)]
[ARM64] Use %clang_cc1 consistently in the new arm64 codegen tests.
Really, all tests outside of the Driver tree should use %clang_cc1, but
these are new and easy to fix, and many of them use buitlin headers
which don't work as well without using %clang_cc1.

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

10 years ago[PowerPC] Make -pg generate calls to _mcount not mcount
Hal Finkel [Sun, 30 Mar 2014 13:00:06 +0000 (13:00 +0000)]
[PowerPC] Make -pg generate calls to _mcount not mcount

At least on REL6 (Linux/glibc 2.12), the proper symbol for generating gprof
data is _mcount, not mcount. Prior to this change, compiling with -pg would
generate linking errors (because of unresolved references to mcount), after
this change -pg seems at least minimally functional.

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

10 years ago[Allocator] Remove forward declarations of BumpPtrAllocator. These
Chandler Carruth [Sun, 30 Mar 2014 12:05:24 +0000 (12:05 +0000)]
[Allocator] Remove forward declarations of BumpPtrAllocator. These
aren't necessary and will break when it changes to be a typedef of
a class template.

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

10 years agoSema: Implement DR317
David Majnemer [Sun, 30 Mar 2014 06:44:54 +0000 (06:44 +0000)]
Sema: Implement DR317

Summary:
Declaring a function as inline after it has been defined is in violation
of [dcl.fct.spec]p4.  The program would get a strong definition instead
of getting a function with linkonce_odr linkage.

Reviewers: rsmith

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3220

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

10 years agoMS ABI: Simplify MangleByte
David Majnemer [Sun, 30 Mar 2014 06:34:26 +0000 (06:34 +0000)]
MS ABI: Simplify MangleByte

The delta between '\xe1' and '\xc1' is equivalent to the one between 'a'
and 'A'.  This allows us to reuse the computation between '\xe1' and
'\xfa' for the '\xc1' to '\xda' case.

No functionality change.

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