]> granicus.if.org Git - clang/log
clang
12 years agoFix the formatting of pointer/reference types in range-based for loops.
Daniel Jasper [Wed, 23 Jan 2013 12:58:14 +0000 (12:58 +0000)]
Fix the formatting of pointer/reference types in range-based for loops.

Before: for (int & a : Values) {}
After:  for (int &a : Values) {}

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

12 years agoRemoving the penalty for breaking after "=".
Daniel Jasper [Wed, 23 Jan 2013 12:27:43 +0000 (12:27 +0000)]
Removing the penalty for breaking after "=".

Having seen more cases, this actually was not a good thing to do in the
first place. We can still improve on what we do now, but breaking after
the "=" is good in many cases.

Before:
aaaaaaaaaaaaa = aa->aaaaaaaaaaaaaaaaaaaa(
                    aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa));

After:
aaaaaaaaaaaaa =
    aa->aaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaa));

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

12 years agoFix another regression for pointer types.
Daniel Jasper [Wed, 23 Jan 2013 12:10:53 +0000 (12:10 +0000)]
Fix another regression for pointer types.

Before: if (int * a = &b) ...
After:  if (int *a = &b) ...

Also changed all the existing tests to test the expressions in question
both in a declaration and in an expression context.

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

12 years agoAdd a new LangOpt NativeHalfType. This option allows for native half/fp16
Joey Gouly [Wed, 23 Jan 2013 11:56:20 +0000 (11:56 +0000)]
Add a new LangOpt NativeHalfType. This option allows for native half/fp16
operations (as opposed to storage only half/fp16).

Also add some semantic checks for OpenCL half types.

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

12 years agoFix regression in formatting pointer types.
Daniel Jasper [Wed, 23 Jan 2013 11:15:14 +0000 (11:15 +0000)]
Fix regression in formatting pointer types.

We will need a more principled solution, but we should not leave this
unfixed until we come up with one.

Before: void f() { int * a; }
After:  void f() { int *a; }

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

12 years agoFixes incorrect handling of the declaration context stack.
Manuel Klimek [Wed, 23 Jan 2013 11:03:04 +0000 (11:03 +0000)]
Fixes incorrect handling of the declaration context stack.

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

12 years agoFix segfaults in the formatter.
Manuel Klimek [Wed, 23 Jan 2013 10:09:28 +0000 (10:09 +0000)]
Fix segfaults in the formatter.

Also: expletive deleted.

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

12 years agoAdd option to allow putting all parameters onto the next line.
Daniel Jasper [Wed, 23 Jan 2013 10:08:28 +0000 (10:08 +0000)]
Add option to allow putting all parameters onto the next line.

This only affects styles where BinPackParameters is false.

With AllowAllParametersOnNextLine:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);

Without it:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaa,
                                         aaaaaaaaaa,
                                         aaaaaaaaaa,
                                         aaaaaaaaaaa,
                                         aaaaaaaaaaa);

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

12 years agoAllow us to better guess the context of an unwrapped line.
Manuel Klimek [Wed, 23 Jan 2013 09:32:48 +0000 (09:32 +0000)]
Allow us to better guess the context of an unwrapped line.

This gives us the ability to guess better defaults for whether a *
between identifiers is a pointer dereference or binary operator.

Now correctly formats:
void f(a *b);
void f() { f(a * b); }

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

12 years agoExplicitly cast away the const-ness instead of doing it implicitly.
Bill Wendling [Wed, 23 Jan 2013 08:58:23 +0000 (08:58 +0000)]
Explicitly cast away the const-ness instead of doing it implicitly.

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

12 years agoExplicitly cast away the const-ness instead of doing it implicitly.
Bill Wendling [Wed, 23 Jan 2013 08:25:41 +0000 (08:25 +0000)]
Explicitly cast away the const-ness instead of doing it implicitly.

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

12 years agoRemove the last of uses that use the Attribute object as a collection of attributes.
Bill Wendling [Wed, 23 Jan 2013 06:15:10 +0000 (06:15 +0000)]
Remove the last of uses that use the Attribute object as a collection of attributes.

Collections of attributes are handled via the AttributeSet class now. This
finally frees us up to make significant changes to how attributes are structured.

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

12 years agoMake __attribute__((nonnull)) use the general expression evaluator to search for
Nick Lewycky [Wed, 23 Jan 2013 05:08:29 +0000 (05:08 +0000)]
Make __attribute__((nonnull)) use the general expression evaluator to search for
nulls instead of limiting itself to the language-defined "null pointer
constant".

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

12 years agoclang/test/Driver/output-file-is-dir.c: This requires shell due to 'cd'.
NAKAMURA Takumi [Wed, 23 Jan 2013 01:25:23 +0000 (01:25 +0000)]
clang/test/Driver/output-file-is-dir.c: This requires shell due to 'cd'.

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

12 years ago[Driver] Don't remove non-regular files that were outputs.
Daniel Dunbar [Wed, 23 Jan 2013 01:08:23 +0000 (01:08 +0000)]
[Driver] Don't remove non-regular files that were outputs.

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

12 years agoDocumentation cleanup: fixing documentation for FrontendAction.
James Dennett [Wed, 23 Jan 2013 00:45:44 +0000 (00:45 +0000)]
Documentation cleanup: fixing documentation for FrontendAction.
* Fix a typo, s/BeginSourceAction/BeginSourceFile/, so that the documentation
  for FrontendAction::BeginSourceFileAction links correctly to BeginSourceFile;
* Add some basic \file documentation for FrontendAction.h;
* More use of "\brief" instead of repeating the name of the entity being
  documented;
* Stop using Doxygen-style "///" comments in FrontendAction.cpp, as they were
  polluting the documentation for BeginSourceFile;
* Drop incorrect "\see" markup that broke Doxygen's formatting;
* Other minor documentation fixes.

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

12 years agoUse the AttributeSet when adding multiple attributes and an Attribute::AttrKind
Bill Wendling [Wed, 23 Jan 2013 00:21:06 +0000 (00:21 +0000)]
Use the AttributeSet when adding multiple attributes and an Attribute::AttrKind
when adding a single attribute to the function.

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

12 years agoFix compilation on Linux, which defines PATH_MAX in a weird place,
Douglas Gregor [Tue, 22 Jan 2013 23:49:45 +0000 (23:49 +0000)]
Fix compilation on Linux, which defines PATH_MAX in a weird place,
from Saleem Abdulrasool!

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

12 years agoAdd a triple, per Ben's suggestion.
Chad Rosier [Tue, 22 Jan 2013 21:39:58 +0000 (21:39 +0000)]
Add a triple, per Ben's suggestion.

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

12 years agoSecond attempt to fix ppc bots.
Chad Rosier [Tue, 22 Jan 2013 20:57:10 +0000 (20:57 +0000)]
Second attempt to fix ppc bots.

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

12 years agoAdd x86 requirement to hopefully fix ppc bots.
Chad Rosier [Tue, 22 Jan 2013 20:16:41 +0000 (20:16 +0000)]
Add x86 requirement to hopefully fix ppc bots.

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

12 years agoPowerPC: fix __builtin_eh_return_data_regno return
Adhemerval Zanella [Tue, 22 Jan 2013 20:02:45 +0000 (20:02 +0000)]
PowerPC: fix __builtin_eh_return_data_regno return

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

12 years ago[ms-inline asm] Remove the -fenable-experimental-ms-inline-asm flag. MS-style
Chad Rosier [Tue, 22 Jan 2013 19:38:32 +0000 (19:38 +0000)]
[ms-inline asm] Remove the -fenable-experimental-ms-inline-asm flag.  MS-style
inline assembly can be enable with -fasm-blocks or -fms-extensions alone.

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

12 years agoSplit "discards qualifiers" warnings of -Wincompatible-pointer-types into subgroup.
Ted Kremenek [Tue, 22 Jan 2013 19:32:27 +0000 (19:32 +0000)]
Split "discards qualifiers" warnings of -Wincompatible-pointer-types into subgroup.

This allows users to promote -Wincompatible-pointer-type warnings to
errors but keep those for "discard qualifiers" as warnings (if they
so desire).

Addresses <rdar://problem/13062738>.

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

12 years agoUpdate docs: nullptr conversion tool landed
Dmitri Gribenko [Tue, 22 Jan 2013 19:22:22 +0000 (19:22 +0000)]
Update docs: nullptr conversion tool landed

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

12 years agoSmall code change to improve performance
Fariborz Jahanian [Tue, 22 Jan 2013 19:05:17 +0000 (19:05 +0000)]
Small code change to improve performance
in my last patch, suggested by Argyrios.

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

12 years agoobjectiveC (take two): don't warn when in -Wselector mode and
Fariborz Jahanian [Tue, 22 Jan 2013 18:35:43 +0000 (18:35 +0000)]
objectiveC (take two): don't warn when in -Wselector mode and
an unimplemented selector is consumed by
"respondsToSelector:". // rdar://12938616

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

12 years ago[ms-inline asm] Remove a warning about ms-style inline assembly not being
Chad Rosier [Tue, 22 Jan 2013 18:18:22 +0000 (18:18 +0000)]
[ms-inline asm] Remove a warning about ms-style inline assembly not being
supported.

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

12 years agoMake getDefinitiveDeclContext() actually return a DeclContext, as one
Douglas Gregor [Tue, 22 Jan 2013 17:08:30 +0000 (17:08 +0000)]
Make getDefinitiveDeclContext() actually return a DeclContext, as one
would expect, and clean up the return/break inconsistencies. Thanks,
Sebastian!

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

12 years agoFix a bug in VarDecl::getSourceRange() for static member arrays with an element
Nico Weber [Tue, 22 Jan 2013 17:00:09 +0000 (17:00 +0000)]
Fix a bug in VarDecl::getSourceRange() for static member arrays with an element
type with an implicit initializer expression.

Patch from Will Wilson <will@indefiant.com>!

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

12 years agoFormatter: Remove a fixme klimek fixed in r173168.
Nico Weber [Tue, 22 Jan 2013 16:53:59 +0000 (16:53 +0000)]
Formatter: Remove a fixme klimek fixed in r173168.

Add a few comments to the ObjC test cases.

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

12 years agoImplements more principled comment parsing.
Manuel Klimek [Tue, 22 Jan 2013 16:31:55 +0000 (16:31 +0000)]
Implements more principled comment parsing.

Changing nextToken() in the UnwrappedLineParser to get the next
non-comment token. This allows us to correctly layout a whole class of
snippets, like:

if /* */(/* */ a /* */) /* */
  f() /* */; /* */
else /* */
  g();

Fixes a bug in the formatter where we would assume there is a previous
non-comment token.
Also adds the indent level of an unwrapped line to the debug output in
the parser.

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

12 years agoLet the formatter be more restrictive for breaking around . and ->
Daniel Jasper [Tue, 22 Jan 2013 14:28:24 +0000 (14:28 +0000)]
Let the formatter be more restrictive for breaking around . and ->

Before:
aaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
    .aaaaaaaaaaaaaaaaaa();

After:
aaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaa,
                aaaaaaaaaaaaaaaaaaaaaaa).aaaaaaaaaaaaaaaaaa();

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

12 years agoFix "*" formatting when creating arrays of pointers.
Daniel Jasper [Tue, 22 Jan 2013 11:46:26 +0000 (11:46 +0000)]
Fix "*" formatting when creating arrays of pointers.

Before: A = new int * [10]();
After:  A = new int *[10]();

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

12 years agoSwitch to APFloat constructor taking fltSemantics.
Tim Northover [Tue, 22 Jan 2013 09:46:51 +0000 (09:46 +0000)]
Switch to APFloat constructor taking fltSemantics.

This change also makes the serialisation store the required semantics,
fixing an issue where PPC128 was always assumed when re-reading a
128-bit value.

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

12 years ago[ASan] Fixed darwin-sanitizer-ld.c to match the flags after the switch to the dynamic...
Alexander Potapenko [Tue, 22 Jan 2013 09:27:00 +0000 (09:27 +0000)]
[ASan] Fixed darwin-sanitizer-ld.c to match the flags after the switch to the dynamic runtime.

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

12 years ago[ASan] Link with the dynamic runtime on OS X
Alexander Potapenko [Tue, 22 Jan 2013 09:16:03 +0000 (09:16 +0000)]
[ASan] Link with the dynamic runtime on OS X
This patch changes the behavior of the -fsanitize=address flag, making it use the dynamic runtime library (libclang_rt.asan_osx_dynamic.dylib) instead of the static one. It also drops the CoreFoundation dependency, since the dynamic runtime doesn't need it.

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

12 years agolibclang: Update comment about USEDLIBS in c-*-test/Makefile.
NAKAMURA Takumi [Tue, 22 Jan 2013 04:11:33 +0000 (04:11 +0000)]
libclang: Update comment about USEDLIBS in c-*-test/Makefile.

"Note that 'USEDLIBS' must include all of the core clang libraries when -static is given to linker on cygming."

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

12 years agoUse the correct field to copy/dispose a __block variable.
John McCall [Tue, 22 Jan 2013 03:56:22 +0000 (03:56 +0000)]
Use the correct field to copy/dispose a __block variable.

We were previously hard-coding a particular field index.  This was
fine before (because we were obviously guaranteed the presence
of a copy/dispose member) except for (1) alignment padding and
(2) future extensions adding extra members to the header, such
as the extended-layout pointer.

Note that we only introduce the extended-layout pointer in the
presence of structs.  (We also seem to be introducing it even
in the presence of an all-non-object layout, but that's a
different potential issue.)

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

12 years agoclang/test/Index/comment-to-html-xml-conversion.cpp: Mark this as XFAIL:valgrind...
NAKAMURA Takumi [Tue, 22 Jan 2013 03:49:16 +0000 (03:49 +0000)]
clang/test/Index/comment-to-html-xml-conversion.cpp: Mark this as XFAIL:valgrind, for now. Working in progress.

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

12 years agoclang/test: [CMake] check-clang doesn't require llvm-dis any more.
NAKAMURA Takumi [Tue, 22 Jan 2013 01:52:04 +0000 (01:52 +0000)]
clang/test: [CMake] check-clang doesn't require llvm-dis any more.

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

12 years agoclang/test/CodeGen: Nuke llvm's opt and llvm-dis, and FileCheck-ize two tests. -O1...
NAKAMURA Takumi [Tue, 22 Jan 2013 01:51:59 +0000 (01:51 +0000)]
clang/test/CodeGen: Nuke llvm's opt and llvm-dis, and FileCheck-ize two tests. -O1 is sufficient here.

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

12 years agoclang/test/CodeGen/2006-01-13-StackSave.c: Nuke llvm's opt and llvm-dis, and FileChec...
NAKAMURA Takumi [Tue, 22 Jan 2013 01:51:54 +0000 (01:51 +0000)]
clang/test/CodeGen/2006-01-13-StackSave.c: Nuke llvm's opt and llvm-dis, and FileCheck-ize.

@llvm.stacksave is emitted regardless of "opt -std-compile-opts". We have optimizers' tests in llvm/test/Transforms.

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

12 years agoclang/test/CodeGen/blocks-seq.c: FileCheck-ize.
NAKAMURA Takumi [Tue, 22 Jan 2013 01:51:48 +0000 (01:51 +0000)]
clang/test/CodeGen/blocks-seq.c: FileCheck-ize.

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

12 years agoRemove "incorrect" aligning of trailing comments.
Daniel Jasper [Mon, 21 Jan 2013 22:49:20 +0000 (22:49 +0000)]
Remove "incorrect" aligning of trailing comments.

We used to align trailing comments belong to different things.
Before:
void f() { // some function..
}
int a;     // some variable..

After:
void f() { // some function..
}
int a; // some variable..

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

12 years agoHave AttributeSet::getRetAttributes() return an AttributeSet instead of Attribute.
Bill Wendling [Mon, 21 Jan 2013 22:45:00 +0000 (22:45 +0000)]
Have AttributeSet::getRetAttributes() return an AttributeSet instead of Attribute.

This further restricts the use of the Attribute class to the Attribute family of
classes.

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

12 years agoobjectiveC: don't warn when in -Wselector mode and
Fariborz Jahanian [Mon, 21 Jan 2013 22:32:29 +0000 (22:32 +0000)]
objectiveC: don't warn when in -Wselector mode and
an unimplemented selector is consumed by
"respondsToSelector:". // rdar://12938616

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

12 years agoMake AttributeSet::getFnAttributes() return an AttributeSet instead of an Attribute.
Bill Wendling [Mon, 21 Jan 2013 21:57:40 +0000 (21:57 +0000)]
Make AttributeSet::getFnAttributes() return an AttributeSet instead of an Attribute.

This is more code to isolate the use of the Attribute class to that of just
holding one attribute instead of a collection of attributes.

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

12 years agoGive ModuleFiles an index, so that we can use indexed vectors rather
Douglas Gregor [Mon, 21 Jan 2013 20:07:12 +0000 (20:07 +0000)]
Give ModuleFiles an index, so that we can use indexed vectors rather
than DenseMaps and SmallPtrSets for module-visitation data. ~2.6%
speedup for modules.

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

12 years agoEliminate Sema::CompareProperties(), which was walking over a pile of
Douglas Gregor [Mon, 21 Jan 2013 19:42:21 +0000 (19:42 +0000)]
Eliminate Sema::CompareProperties(), which was walking over a pile of
lexical declarations looking for properties when we could more
efficiently check for property mismatches at property declaration
time. Good for ~1% of -fsyntax-only time when most of the properties
we're checking against come from an AST file.

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

12 years agoFormatter: Set MatchingParen for [], to match <>, (), {}. No functionality change.
Nico Weber [Mon, 21 Jan 2013 19:35:06 +0000 (19:35 +0000)]
Formatter: Set MatchingParen for [], to match <>, (), {}. No functionality change.

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

12 years agoFormatter: Rename LSquare to Left to make parseSquare() more consistent with the...
Nico Weber [Mon, 21 Jan 2013 19:29:31 +0000 (19:29 +0000)]
Formatter: Rename LSquare to Left to make parseSquare() more consistent with the other paren parsing methods.

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

12 years agoFixes various problems around enum parsing.
Manuel Klimek [Mon, 21 Jan 2013 19:17:52 +0000 (19:17 +0000)]
Fixes various problems around enum parsing.

Very similar to what we do for record definitions:
- tighten down what is an enum definition, so that we don't mistake a
  function for an enum
- allow common idioms around declarations (we'll want to handle that
  more centrally in the future)

We now correctly format:
enum X f() {
  a();
  return 42;
}

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

12 years agoEliminate the oddly-named Sema::ComparePropertiesInBaseAndSuper, which
Douglas Gregor [Mon, 21 Jan 2013 19:05:22 +0000 (19:05 +0000)]
Eliminate the oddly-named Sema::ComparePropertiesInBaseAndSuper, which
did a redundant traversal of the lexical declarations in the
superclass. Instead, when we declare a new property, look into the
superclass to see whether we're redeclaring the property. Goot for 1%
of -fsyntax-only time on Cocoa.h and a little less than 3% on my
modules test case.

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

12 years ago[ASTUnit] Unlike LoadFromCommandLine, LoadFromCompilerInvocation causes a crash if...
Argyrios Kyrtzidis [Mon, 21 Jan 2013 18:45:42 +0000 (18:45 +0000)]
[ASTUnit] Unlike LoadFromCommandLine, LoadFromCompilerInvocation causes a crash if Precompilepreamble
is set to true because there is no FileManager at that point.

Patch by Hurcan Solter!

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

12 years ago[analyzer] Fix test for r173067.
Jordan Rose [Mon, 21 Jan 2013 18:41:05 +0000 (18:41 +0000)]
[analyzer] Fix test for r173067.

Note to self: don't remove comments /after/ updating the line-sensitive
part of a test.

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

12 years agoReplace some unnecessary O(N^2) lookups for properties with
Douglas Gregor [Mon, 21 Jan 2013 18:35:55 +0000 (18:35 +0000)]
Replace some unnecessary O(N^2) lookups for properties with
DeclContext lookups. The performance win is negligible in my tests,
but it's the Right Thing To Do (TM).

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

12 years ago[analyzer] Show notes inside implicit calls at the last explicit call site.
Jordan Rose [Mon, 21 Jan 2013 18:28:30 +0000 (18:28 +0000)]
[analyzer] Show notes inside implicit calls at the last explicit call site.

Before:
  struct Wrapper { <-- 2. Calling default constructor for 'NonTrivial'.
    NonTrivial m;
  };

  Wrapper w; <-- 1. Calling implicit default constructor for 'Wrapper'.

After:
  struct Wrapper {
    NonTrivial m;
  };

  Wrapper w; <-- 1. Calling implicit default constructor for 'Wrapper'.
             ^-- 2. Calling default constructor for 'NonTrivial'.

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

12 years agoReadSourceManagerBlock is skipping over records that can contain Blobs. Not passing
Chris Lattner [Mon, 21 Jan 2013 18:28:26 +0000 (18:28 +0000)]
ReadSourceManagerBlock is skipping over records that can contain Blobs.  Not passing
in a StringRef to bind to them forces them to be unpacked into the Record as individual
bytes.  This is wasteful, but not likely to be measurable in this instance.

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

12 years agoRevert r173056; it breaks one of the CodeGen-with-PCH tests.
Douglas Gregor [Mon, 21 Jan 2013 16:52:34 +0000 (16:52 +0000)]
Revert r173056; it breaks one of the CodeGen-with-PCH tests.

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

12 years agoWhen loading an identifier from an AST file solely for the purpose of
Douglas Gregor [Mon, 21 Jan 2013 16:47:11 +0000 (16:47 +0000)]
When loading an identifier from an AST file solely for the purpose of
forming the identifier, e.g., as part of a selector or a declaration
name, don't actually deserialize any information about the
identifier. Instead, simply mark it "out-of-date" and we'll load the
the information on demand. 2% speedup on the modules testcase I'm
looking at; should also help PCH.

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

12 years agoFixes formatting of empty blocks.
Manuel Klimek [Mon, 21 Jan 2013 16:42:44 +0000 (16:42 +0000)]
Fixes formatting of empty blocks.

We now only put empty blocks into a single line, if all of:
- all tokens of the structural element fit into a single line
- we're not in a control flow statement

Note that we usually don't put record definitions into a single line, as
there's usually at least one more token (the semicolon) after the
closing brace. This doesn't hold when we are in a context where there is
no semicolon, like "enum E {}".

There were some missing tests around joining lines around the corner
cases of the allowed number of columns, so this patch adds some.

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

12 years agoWhen deserializing a declaration, don't look for redeclarations if its
Douglas Gregor [Mon, 21 Jan 2013 16:16:40 +0000 (16:16 +0000)]
When deserializing a declaration, don't look for redeclarations if its
kind indicates that it can never be redeclared. Good for a 1% speedup,
and redeclaration searching drops off the profile.

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

12 years agoIntroduce a fast path for the ASTReader's name lookup within a
Douglas Gregor [Mon, 21 Jan 2013 15:25:38 +0000 (15:25 +0000)]
Introduce a fast path for the ASTReader's name lookup within a
DeclContext. When the DeclContext is of a kind that can only be
defined once and never updated, we limit the search to the module file
that conatins the lookup table. Provides a 15% speedup in one
modules-heavy source file.

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

12 years agoFix parsing of templated declarations.
Daniel Jasper [Mon, 21 Jan 2013 14:39:22 +0000 (14:39 +0000)]
Fix parsing of templated declarations.

Before: template <template <typename T>, typename P > class X;
After:  template <template <typename T>, typename P> class X;

More importantly, the token annotations for the second ">" are now computed
correctly.

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

12 years agoFixes indent in linkage specification blocks.
Manuel Klimek [Mon, 21 Jan 2013 14:32:05 +0000 (14:32 +0000)]
Fixes indent in linkage specification blocks.

We now indent:
extern "C" {
int a;
}

without additional indent inside the extern "C" block.

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

12 years agoFix bug discovered by valgrind.
Daniel Jasper [Mon, 21 Jan 2013 14:18:28 +0000 (14:18 +0000)]
Fix bug discovered by valgrind.

When trying to merge lines, we should not touch lines that are invalid,
as we don't know how long they might be.

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

12 years agoAdd regression test.
Manuel Klimek [Mon, 21 Jan 2013 14:16:56 +0000 (14:16 +0000)]
Add regression test.

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

12 years agoAST/VTableBuilder.h: Suppress a warning. [-Wunused-private-field]
NAKAMURA Takumi [Mon, 21 Jan 2013 14:15:24 +0000 (14:15 +0000)]
AST/VTableBuilder.h: Suppress a warning. [-Wunused-private-field]

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

12 years agoFixes detection of class template specializations.
Manuel Klimek [Mon, 21 Jan 2013 13:58:54 +0000 (13:58 +0000)]
Fixes detection of class template specializations.

Now correctly formats:
template <> class A<int> {} a;

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

12 years agoFirst step towards vftable generation with -cxx-abi microsoft PR13231
Timur Iskhodzhanov [Mon, 21 Jan 2013 13:02:41 +0000 (13:02 +0000)]
First step towards vftable generation with -cxx-abi microsoft PR13231

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

12 years agoAdd a fixit for _Noreturn main,
Dmitri Gribenko [Mon, 21 Jan 2013 11:25:03 +0000 (11:25 +0000)]
Add a fixit for _Noreturn main,
add tests for fixits removing static and inline from main

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

12 years agoCGDebugInfo.cpp: Fix a warning. [-Wunused-variable]
NAKAMURA Takumi [Mon, 21 Jan 2013 10:51:28 +0000 (10:51 +0000)]
CGDebugInfo.cpp: Fix a warning. [-Wunused-variable]

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

12 years agoAllow for nested name specifiers in record declarations.
Manuel Klimek [Mon, 21 Jan 2013 10:17:14 +0000 (10:17 +0000)]
Allow for nested name specifiers in record declarations.

Now correctly formats:
class A::B {} n;

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

12 years agoFix parsing of return statements.
Manuel Klimek [Mon, 21 Jan 2013 10:07:49 +0000 (10:07 +0000)]
Fix parsing of return statements.

Previously, we would not detect brace initializer lists in return
statements, thus:
 return (a)(b) { 1, 2, 3 };
would put the semicolon onto the next line.

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

12 years agoPort r172856: 'Include ubsan runtime even when building a shared library. We don...
Alexey Samsonov [Mon, 21 Jan 2013 08:45:02 +0000 (08:45 +0000)]
Port r172856: 'Include ubsan runtime even when building a shared library. We don't require executable to be linked with UBSan.' to Mac

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

12 years agoPR14472: Preserve qualifiers while unwrapping types for debug info
David Blaikie [Mon, 21 Jan 2013 04:37:12 +0000 (04:37 +0000)]
PR14472: Preserve qualifiers while unwrapping types for debug info

Looks like r161368 fixed this for one case but not all. This change generalizes
the solution over all the unwrapping cases. Now that preserving the qualifiers
is done independent of the particular type being unwrapped I won't bother
adding test cases for each one but at least demonstrate that this change was
necessary & sufficient to fix the bug.

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

12 years agoPrune unused diagnostics.
Benjamin Kramer [Sun, 20 Jan 2013 19:29:01 +0000 (19:29 +0000)]
Prune unused diagnostics.

Courtesy of utils/find-unused-diagnostics.sh.

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

12 years agoclang/utils/valgrind/x86_64-pc-linux-gnu_gcc-4.3.3.supp: Add /usr/bin/cmp.
NAKAMURA Takumi [Sun, 20 Jan 2013 15:30:41 +0000 (15:30 +0000)]
clang/utils/valgrind/x86_64-pc-linux-gnu_gcc-4.3.3.supp: Add /usr/bin/cmp.

FIXME: It could be removed if;

  - check-all included llvm/valgrind/supp, too.
  - clang-vg didn't use "check-all".

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

12 years agoAdd bitreader to LINK_COMPONENTS in users of libclang, c-arcmt-test and c-index-test.
NAKAMURA Takumi [Sun, 20 Jan 2013 14:53:49 +0000 (14:53 +0000)]
Add bitreader to LINK_COMPONENTS in users of libclang, c-arcmt-test and c-index-test.

They don't link cygclang.dll, but libclang.a on cygwin.

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

12 years agoAdd top-level Clang flag -f(no-)sanitize-address-zero-base-shadow that makes AddressS...
Alexey Samsonov [Sun, 20 Jan 2013 13:12:12 +0000 (13:12 +0000)]
Add top-level Clang flag -f(no-)sanitize-address-zero-base-shadow that makes AddressSanitizer use bottom of the address space for the shadow memory. On Linux it can be used with -fPIE/-pie to improve performance.

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

12 years agoImplement OpenCL event_t as Clang builtin type, including event_t related OpenCL...
Guy Benyei [Sun, 20 Jan 2013 12:31:11 +0000 (12:31 +0000)]
Implement OpenCL event_t as Clang builtin type, including event_t related OpenCL restrictions (OpenCL 1.2 spec 6.9)

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

12 years agoupdate to use the new BitcodeCursor readRecord that takes a StringRef blob parameter,
Chris Lattner [Sun, 20 Jan 2013 02:38:54 +0000 (02:38 +0000)]
update to use the new BitcodeCursor readRecord that takes a StringRef blob parameter,
and adopt "advance" in more places.

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

12 years agoNuke SetUpBuildDumpLog.
Sean Silva [Sun, 20 Jan 2013 01:58:28 +0000 (01:58 +0000)]
Nuke SetUpBuildDumpLog.

Also, it was the only reason that `argc` and `argv` were being passed
into createDiagnostics, so remove those parameters and clean up callers.

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

12 years agoFix what appears to be a copy-paste error.
Sean Silva [Sun, 20 Jan 2013 01:58:26 +0000 (01:58 +0000)]
Fix what appears to be a copy-paste error.

This looks like it was copied from SetUpBuildDumpLog, which dumps to the
file `DiagOpts->DumpBuildInformation`. There is another member
`DiagOpts->DiagnosticLogFile` which appears to be unused. The fact that
this feature doesn't even print to the output file specified on the
command line makes me think that it should be ripped out.

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

12 years agoThe last of PR14471: Debug info support for inline in-class initializer for float...
David Blaikie [Sun, 20 Jan 2013 01:19:17 +0000 (01:19 +0000)]
The last of PR14471: Debug info support for inline in-class initializer for float static members

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

12 years agoFixed trailing whitespace.
Michael Gottesman [Sun, 20 Jan 2013 01:04:14 +0000 (01:04 +0000)]
Fixed trailing whitespace.

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

12 years agoadd back a #include needed on some builders.
Chris Lattner [Sun, 20 Jan 2013 00:57:52 +0000 (00:57 +0000)]
add back a #include needed on some builders.

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

12 years agofinish converting the normal cases in ASTReader to use the new BitstreamCursor APIs.
Chris Lattner [Sun, 20 Jan 2013 00:56:42 +0000 (00:56 +0000)]
finish converting the normal cases in ASTReader to use the new BitstreamCursor APIs.

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

12 years ago[cindex.py]: Use spaces instead of tabs
Tobias Grosser [Sun, 20 Jan 2013 00:42:16 +0000 (00:42 +0000)]
[cindex.py]: Use spaces instead of tabs

The tabs slipped in accidentally.

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

12 years agoconvert some more stuff over to use new cursor APIs.
Chris Lattner [Sun, 20 Jan 2013 00:00:22 +0000 (00:00 +0000)]
convert some more stuff over to use new cursor APIs.

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

12 years agoActually update the test, fixup for r172923
Dmitri Gribenko [Sat, 19 Jan 2013 22:11:28 +0000 (22:11 +0000)]
Actually update the test, fixup for r172923

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

12 years agoUse llvm::hexDigitValue in comment lexer
Dmitri Gribenko [Sat, 19 Jan 2013 22:06:05 +0000 (22:06 +0000)]
Use llvm::hexDigitValue in comment lexer

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

12 years agoComment parsing: add more tests for html character references
Dmitri Gribenko [Sat, 19 Jan 2013 22:04:44 +0000 (22:04 +0000)]
Comment parsing: add more tests for html character references

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

12 years agoswitch a bunch of ASTReader to use the new BitstreamCursor::advance* methods,
Chris Lattner [Sat, 19 Jan 2013 21:39:22 +0000 (21:39 +0000)]
switch a bunch of ASTReader to use the new BitstreamCursor::advance* methods,
which hide a bunch of private details of the cursor from clients and simplify
their code.  More to come.

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

12 years agorandom tidying
Chris Lattner [Sat, 19 Jan 2013 21:35:35 +0000 (21:35 +0000)]
random tidying

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

12 years ago[analyzer] Don't show "Entered 'foo'" if 'foo' is implicit.
Jordan Rose [Sat, 19 Jan 2013 19:52:57 +0000 (19:52 +0000)]
[analyzer] Don't show "Entered 'foo'" if 'foo' is implicit.

Before:
  Calling implicit default constructor for 'Foo'  (where Foo is constructed)
  Entered call from 'test'  (at "=default" or 'Foo' declaration)
  Calling default constructor for 'Bar'  (at "=default" or 'Foo' declaration)

After:
  Calling implicit default constructor for 'Foo'  (where Foo is constructed)
  Calling default constructor for 'Bar'  (at "=default" or 'Foo' declaration)

This only affects the plist diagnostics; this note is never shown in the
other diagnostics.

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

12 years agoEmit the function type of member function pointer types the same as member functions.
David Blaikie [Sat, 19 Jan 2013 19:20:56 +0000 (19:20 +0000)]
Emit the function type of member function pointer types the same as member functions.

Adding the pseudo first parameter to a member function pointer's function type
and mark it as artificial.

Combined with a fix to GDB ( http://sourceware.org/bugzilla/show_bug.cgi?id=14998 )
this fixes gdb.cp/member-ptr.exp with Clang.

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

12 years agolibclangSerialization also depends on the bitreader.
Benjamin Kramer [Sat, 19 Jan 2013 19:10:12 +0000 (19:10 +0000)]
libclangSerialization also depends on the bitreader.

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

12 years agoupdate header comment.
Chris Lattner [Sat, 19 Jan 2013 18:47:35 +0000 (18:47 +0000)]
update header comment.

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