Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								d78c422378 
								
							 
						 
						
							
							
								
								clang-format: [Java] Fix formatting of multiple annotations.  
							
							 
							
							... 
							
							
							
							Before:
  @SuppressWarnings(value = "unchecked")
  @Author(name = "abc") public void doSomething() {
  }
After:
  @SuppressWarnings(value = "unchecked")
  @Author(name = "abc")
  public void doSomething() {
  }
llvm-svn: 220286 
							
						 
						
							2014-10-21 11:17:56 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								5ffcb7fe90 
								
							 
						 
						
							
							
								
								clang-format: [Java] Fix space in generic method calls.  
							
							 
							
							... 
							
							
							
							Before:
  A.<B>doSomething();
After:
  A.<B>doSomething();
llvm-svn: 220285 
							
						 
						
							2014-10-21 11:13:31 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								fd68191db4 
								
							 
						 
						
							
							
								
								clang-format: [Java] Improve annotation handling.  
							
							 
							
							... 
							
							
							
							Before:
@SuppressWarnings(
    value = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") public static int iiiiiiiiiiiiiiiiiiiiiiii;
After:
  @SuppressWarnings(value = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
  public static int iiiiiiiiiiiiiiiiiiiiiiii;
llvm-svn: 220284 
							
						 
						
							2014-10-21 10:58:14 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								c7d024ac53 
								
							 
						 
						
							
							
								
								clang-format: [Java] Make annotation formatting more consistent.  
							
							 
							
							... 
							
							
							
							Before:
  DoSomething(new A() {
    @Override public String toString() {
    }
  });
After:
  DoSomething(new A() {
    @Override
    public String toString() {
    }
  });
llvm-svn: 220282 
							
						 
						
							2014-10-21 10:02:03 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								16b107e9f0 
								
							 
						 
						
							
							
								
								clang-format: [Java] Improve generic support.  
							
							 
							
							... 
							
							
							
							Before:
  Iterable< ? > a;
  Iterable< ? extends SomeObject > a;
After:
  Iterable<?> a;
  Iterable<? extends SomeObject> a;
llvm-svn: 220281 
							
						 
						
							2014-10-21 09:57:09 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f1f0c35632 
								
							 
						 
						
							
							
								
								clang-format: [Java] Support annotations with parameters.  
							
							 
							
							... 
							
							
							
							Before:
  @SuppressWarnings
  (value = "unchecked") public void doSomething() { .. }
After:
  @SuppressWarnings(value = "unchecked")
  public void doSomething() { .. }
llvm-svn: 220279 
							
						 
						
							2014-10-21 09:25:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								fab69ff095 
								
							 
						 
						
							
							
								
								clang-format: [Java] Wrap after each function annotation.  
							
							 
							
							... 
							
							
							
							Before:
  @Override public String toString() { .. }
After:
  @Override
  public String toString() { .. }
llvm-svn: 220274 
							
						 
						
							2014-10-21 08:24:18 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f1f267b447 
								
							 
						 
						
							
							
								
								clang-format: [ObjC] Fix spacing in block variable parameters.  
							
							 
							
							... 
							
							
							
							Before:
  { void (^block)(Object * x); }
After:
  { void (^block)(Object *x); }
llvm-svn: 220270 
							
						 
						
							2014-10-21 07:57:50 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								38efc13191 
								
							 
						 
						
							
							
								
								clang-format: Fix space in direct destructor calls.  
							
							 
							
							... 
							
							
							
							Before:
  void F(int& i) { i. ~int(); }
After:
  void F(int& i) { i.~int(); }
Also, some cleanups.
llvm-svn: 220269 
							
						 
						
							2014-10-21 07:51:54 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								8835a32078 
								
							 
						 
						
							
							
								
								clang-format: Fix overloaded operator edge case.  
							
							 
							
							... 
							
							
							
							Before:
  template <class F>
  void Call(F f) {
    f.template operator() <int>();
  }
After:
  template <class F>
  void Call(F f) {
    f.template operator()<int>();
  }
llvm-svn: 220202 
							
						 
						
							2014-10-20 13:56:30 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								7858079246 
								
							 
						 
						
							
							
								
								clang-format: [ObjC] Fix using selector names as macro arguments.  
							
							 
							
							... 
							
							
							
							Before:
  [self aaaaa:MACRO(a, b :, c :)];
After:
  [self aaaaa:MACRO(a, b:, c:)];
llvm-svn: 220197 
							
						 
						
							2014-10-20 12:01:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								86296e36d7 
								
							 
						 
						
							
							
								
								clang-format: Fix indentation of struct definitions with array init.  
							
							 
							
							... 
							
							
							
							Before:
  struct {
    int x;
    int y;
  } points[] = {
        {1, 2}, {2, 3},
  };
After:
  struct {
    int x;
    int y;
  } points[] = {
      {1, 2}, {2, 3},
  };
llvm-svn: 220195 
							
						 
						
							2014-10-20 11:12:51 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								da07a72928 
								
							 
						 
						
							
							
								
								clang-format: Prefer breaking before trailing return arrows.  
							
							 
							
							... 
							
							
							
							Before:
  auto SomeFunction(
      A aaaaaaaaaaaaaaaaaaaaa) const -> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}
After:
  auto SomeFunction(A aaaaaaaaaaaaaaaaaaaaa) const
      -> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}
llvm-svn: 220043 
							
						 
						
							2014-10-17 14:37:40 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f26c755d42 
								
							 
						 
						
							
							
								
								clang-format: [Java] Don't break immediately after "throws".  
							
							 
							
							... 
							
							
							
							Before:
  public void doSooooooooooooooooooooooooooomething() throws
      LooooooooooooooooooooooooooooongException {}
After:
  public void doSooooooooooooooooooooooooooomething()
      throws LooooooooooooooooooooooooooooongException {}
llvm-svn: 220041 
							
						 
						
							2014-10-17 13:36:14 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								1a31bab301 
								
							 
						 
						
							
							
								
								clang-format: Fix behavior with comments before conditional expressions  
							
							 
							
							... 
							
							
							
							Before:
  SomeFunction(aaaaaaaaaaaaaaaaa,
               // comment.
                   ccccccccccccccccc ? aaaaaaaaaaaaaaaaaaaa
                                     : bbbbbbbbbbbbbbbbbbbb);
After:
  SomeFunction(aaaaaaaaaaaaaaaaa,
               // comment.
               ccccccccccccccccc ? aaaaaaaaaaaaaaaaaaaa : bbbbbbbbbbbbbbbbbbbb);
llvm-svn: 219921 
							
						 
						
							2014-10-16 09:10:11 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ea772b4df2 
								
							 
						 
						
							
							
								
								clang-format: [ObjC] Fix method expression detection.  
							
							 
							
							... 
							
							
							
							Before:
  return (a)[foo bar : baz];
After:
  return (a)[foo bar:baz];
llvm-svn: 219919 
							
						 
						
							2014-10-16 08:38:51 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ec8e838baa 
								
							 
						 
						
							
							
								
								clang-format: [ObjC] Wrap ObjC method declarations before annotations.  
							
							 
							
							... 
							
							
							
							Before:
  - (instancetype)initXxxxxxxxxxxxxxxxxxxxxxxxx:(id<x>)x
                                              y:(id<yyyyyyyyyyyyyyyyyyyy>)
                                                    y NS_DESIGNATED_INITIALIZER;
After:
  - (instancetype)initXxxxxxxxxxxxxxxxxxxxxxxxx:(id<x>)x
                                              y:(id<yyyyyyyyyyyyyyyyyyyy>)y
      NS_DESIGNATED_INITIALIZER;
llvm-svn: 219564 
							
						 
						
							2014-10-11 08:24:56 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a45eb4c000 
								
							 
						 
						
							
							
								
								clang-format: If in doubt, assume '+' is a binary operator.  
							
							 
							
							... 
							
							
							
							Before:
  #define LENGTH(x, y) (x) - (y)+1
After:
  #define LENGTH(x, y) (x) - (y) + 1
llvm-svn: 219119 
							
						 
						
							2014-10-06 13:16:43 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								67f8ad258f 
								
							 
						 
						
							
							
								
								clang-format: [JS] Support AllowShortFunctionsOnASingleLine.  
							
							 
							
							... 
							
							
							
							Specifically, this also counts for stuff like (with style "inline"):
  var x = function() {
    return 1;
  };
llvm-svn: 218689 
							
						 
						
							2014-09-30 17:57:06 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								3549ea1a73 
								
							 
						 
						
							
							
								
								clang-format: [JS] add space before operator 'in'.  
							
							 
							
							... 
							
							
							
							Before:
  return ('aaa')in bbbb;
After:
  return ('aaa') in bbbb;
llvm-svn: 218119 
							
						 
						
							2014-09-19 10:48:15 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b23e20b7f5 
								
							 
						 
						
							
							
								
								clang-format: Allow unbroken ::: in inline assembly.  
							
							 
							
							... 
							
							
							
							Before:
  asm volatile("nop" :: : "memory");
After:
  asm volatile("nop" ::: "memory");
Patch by Eugene Toder. Thank you.
llvm-svn: 217883 
							
						 
						
							2014-09-16 16:36:57 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ac043c900c 
								
							 
						 
						
							
							
								
								clang-format: Add option to break before non-assignment operators.  
							
							 
							
							... 
							
							
							
							This will allow:
  int aaaaaaaaaaaaaa =
      bbbbbbbbbbbbbb
      + ccccccccccccccc;
llvm-svn: 217757 
							
						 
						
							2014-09-15 11:11:00 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								3a038de3c8 
								
							 
						 
						
							
							
								
								clang-format: [JS] JavaScript does not have the */&/&& madness.  
							
							 
							
							... 
							
							
							
							Before:
  e&& e.SomeFunction();
After:
  e && e.SomeFunction();
Yeah, this might be useful for C++, too, but it is not such a frequent
pattern there (plus the fix is much harder).
llvm-svn: 217237 
							
						 
						
							2014-09-05 08:53:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								97bfb7b1ba 
								
							 
						 
						
							
							
								
								clang-format: [JS] Fix indentation in dict literals.  
							
							 
							
							... 
							
							
							
							Before:
  return {
    'finish':
        //
        a
        };
After:
  return {
    'finish':
        //
        a
  };
llvm-svn: 217235 
							
						 
						
							2014-09-05 08:29:31 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								8f2e94c8ab 
								
							 
						 
						
							
							
								
								clang-format: [JS] Supprot "catch" as function name.  
							
							 
							
							... 
							
							
							
							Before:
  someObject.catch ();
After:
  someObject.catch();
llvm-svn: 217158 
							
						 
						
							2014-09-04 15:03:34 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								94e11d02d8 
								
							 
						 
						
							
							
								
								clang-format: [JS] Support comments in dict literals.  
							
							 
							
							... 
							
							
							
							Before:
  var stuff = {
    // comment for update
    update : false,
             // comment for update
    modules : false,
              // comment for update
    tasks : false
  };
After:
  var stuff = {
    // comment for update
    update : false,
    // comment for update
    modules : false,
    // comment for update
    tasks : false
  };
llvm-svn: 217157 
							
						 
						
							2014-09-04 14:58:30 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								db986eb6bb 
								
							 
						 
						
							
							
								
								clang-format: Add an option 'SpaceAfterCStyleCast'.  
							
							 
							
							... 
							
							
							
							This permits to add a space after closing parenthesis of a C-style cast.
Defaults to false to preserve old behavior.
Fixes llvm.org/PR19982.
Before:
  (int)i;
After:
  (int) i;
Patch by Marek Kurdej.
llvm-svn: 217022 
							
						 
						
							2014-09-03 07:37:29 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								73e171f76d 
								
							 
						 
						
							
							
								
								clang-format: Fix unary operator detection in corner case.  
							
							 
							
							... 
							
							
							
							Before:
  decltype(* ::std::declval<const T &>()) void F();
After:
  decltype(*::std::declval<const T &>()) void F();
llvm-svn: 216724 
							
						 
						
							2014-08-29 12:54:38 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								168c8aa679 
								
							 
						 
						
							
							
								
								clang-format: Fix regression in formatting of braced initializers.  
							
							 
							
							... 
							
							
							
							Before:
  Node n{1, Node{1000}, //
                2};
After:
  Node n{1, Node{1000}, //
         2};
llvm-svn: 216540 
							
						 
						
							2014-08-27 11:53:26 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ad981f888a 
								
							 
						 
						
							
							
								
								clang-format: New option SpacesInSquareBrackets.  
							
							 
							
							... 
							
							
							
							Before:
  int a[5];
  a[3] += 42;
After:
  int a[ 5 ];
  a[ 3 ] += 42;
Fixes LLVM bug #17887  (http://llvm.org/bugs/show_bug.cgi?id=17887 ).
Patch by Marek Kurdej, thank you!
llvm-svn: 216449 
							
						 
						
							2014-08-26 11:41:14 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								610381ff07 
								
							 
						 
						
							
							
								
								clang-format: Improve handling of block comments in braced lists.  
							
							 
							
							... 
							
							
							
							Before:
  std::vector<int> v = {
      1, 0 /* comment */
  };
After:
  std::vector<int> v = {1, 0 /* comment */};
llvm-svn: 216445 
							
						 
						
							2014-08-26 09:37:52 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								4b3ba214d0 
								
							 
						 
						
							
							
								
								clang-format: Understand sequenced casts.  
							
							 
							
							... 
							
							
							
							This fixed llvm.org/PR20712.
Before:
  int i = (int)(int) -2;
After:
  int i = (int)(int)-2;
llvm-svn: 216378 
							
						 
						
							2014-08-25 09:36:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ea79ea1627 
								
							 
						 
						
							
							
								
								clang-format: Prefer breaking after return type over template param  
							
							 
							
							... 
							
							
							
							Before:
  typename aaaaaaaaaa<aaaaaa>::aaaaaaaaaaa aaaaaaaaaa<
      aaaaaa>::aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(bool *aaaaaaaaaaaaaaaaaa,
                                                   bool *aa) {}
After:
  typename aaaaaaaaaa<aaaaaa>::aaaaaaaaaaa
  aaaaaaaaaa<aaaaaa>::aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      bool *aaaaaaaaaaaaaaaaaa, bool *aa) {}
llvm-svn: 215693 
							
						 
						
							2014-08-15 05:00:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								497d9fdcf8 
								
							 
						 
						
							
							
								
								clang-format: [proto] Understand text-format nesting without :  
							
							 
							
							... 
							
							
							
							Before:
  option (MyProto.options) = {
    field_c : "OK" msg_field{field_d : 123}
  };
After:
  option (MyProto.options) = {
    field_c : "OK"
    msg_field{field_d : 123}
  };
(Note that the colon after "msg_field" is optional).
llvm-svn: 215692 
							
						 
						
							2014-08-15 05:00:35 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								db76479d73 
								
							 
						 
						
							
							
								
								clang-format: Fix AlwaysBreakAfterDefinitionReturnType in Stroutrup style  
							
							 
							
							... 
							
							
							
							Before:
  template <class T>
  T *f(T &c)  // Problem here: no line break before f
  {
    return NULL;
  }
After:
  template <class T>
  T *
  f(T &c)
  {
    return NULL;
  }
Patch by Marek Kurdej, thank you!
llvm-svn: 215633 
							
						 
						
							2014-08-14 11:36:03 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								1904e9b98d 
								
							 
						 
						
							
							
								
								clang-format: Support chained dereferenced assignments.  
							
							 
							
							... 
							
							
							
							Before:
  x = * a(x) = *a(y);
After:
  x = *a(x) = *a(y);
llvm-svn: 215632 
							
						 
						
							2014-08-14 10:53:19 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								78b4533acf 
								
							 
						 
						
							
							
								
								clang-format: Support breaking arguments of function type typedefs.  
							
							 
							
							... 
							
							
							
							Before:
  typedef size_t (*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(
      const aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
  typedef size_t (*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)(
      const aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *
          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
llvm-svn: 215631 
							
						 
						
							2014-08-14 10:52:56 +00:00  
						
					 
				
					
						
							
							
								 
								Manuel Klimek
							
						 
						
							 
							
							
							
							
								
							
							
								5f594f80f4 
								
							 
						 
						
							
							
								
								Fix crasher bug in clang-format.  
							
							 
							
							... 
							
							
							
							llvm-svn: 215549 
							
						 
						
							2014-08-13 14:00:41 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								343643b979 
								
							 
						 
						
							
							
								
								clang-format: Understand #defines defining system includes.  
							
							 
							
							... 
							
							
							
							Before:
  #define MY_IMPORT < a / b >
After:
  #define MY_IMPORT <a/b>
llvm-svn: 215527 
							
						 
						
							2014-08-13 08:29:18 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								598dd330e8 
								
							 
						 
						
							
							
								
								clang-format: Avoid bad line break.  
							
							 
							
							... 
							
							
							
							Before:
  int
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(const
                                typename aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa);
After:
  int aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      const typename aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa);
llvm-svn: 215442 
							
						 
						
							2014-08-12 13:22:26 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a5621202c4 
								
							 
						 
						
							
							
								
								clang-format: Prefer not to put lambdas on a single line.  
							
							 
							
							... 
							
							
							
							Before:
  string abc =
      SomeFunction(aaaaaaaaaaaaa, aaaaa,
                   []() { SomeOtherFunctioooooooooooooooooooooooooon(); });
After:
  string abc = SomeFunction(aaaaaaaaaaaaa, aaaaa, []() {
    SomeOtherFunctioooooooooooooooooooooooooon();
  });
llvm-svn: 215197 
							
						 
						
							2014-08-08 12:00:13 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								78b1949950 
								
							 
						 
						
							
							
								
								clang-format: Correct SBPO_Always-behavior after function-like keywords  
							
							 
							
							... 
							
							
							
							Before:
  auto f (int x) -> decltype(x) { return sizeof(x); }
  int g () noexcept(someCall ());
  static_assert(sizeof(char) == 1, "Your compiler is broken");
After:
  auto f (int x) -> decltype (x) { return sizeof (x); }
  int g () noexcept (someCall ());
  static_assert (sizeof (char) == 1, "Your compiler is broken");
This fixes llvm.org/PR20559.
Patch by Roman Kashitsyn, thank you!
llvm-svn: 214969 
							
						 
						
							2014-08-06 14:15:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chad Rosier
							
						 
						
							 
							
							
							
							
								
							
							
								0a84f17882 
								
							 
						 
						
							
							
								
								[PR19983] SBPO_Always not covering all the cases.  
							
							 
							
							... 
							
							
							
							Patch by "Roman Kashitsyn" <romankashicin@gmail.com>.
Phabricator revision: http://reviews.llvm.org/D4788 
llvm-svn: 214904 
							
						 
						
							2014-08-05 17:58:54 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ca4ea1ce59 
								
							 
						 
						
							
							
								
								clang-format: Add option to always break after a function's return type.  
							
							 
							
							... 
							
							
							
							This is required for GNU coding style, among others.
Also update the configuration documentation.
Modified from an original patch by Jarkko Hietaniemi, thank you!
llvm-svn: 214858 
							
						 
						
							2014-08-05 12:16:31 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								dcf37fbec5 
								
							 
						 
						
							
							
								
								clang-format: Add a space in ObjC protocols.  
							
							 
							
							... 
							
							
							
							Before:
  @interface Foo (HackStuff)<MyProtocol>
After:
  @interface Foo (HackStuff) <MyProtocol>
llvm-svn: 214508 
							
						 
						
							2014-08-01 13:03:05 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								71646ec206 
								
							 
						 
						
							
							
								
								clang-format: Understand 'typename' in placement new.  
							
							 
							
							... 
							
							
							
							Before:
  new (aaaaaaaaaaaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaa)) typename aaaaaaaaaaaaaaaaaaaaaaaa();
After:
  new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa))
      typename aaaaaaaaaaaaaaaaaaaaaaaa();
llvm-svn: 214300 
							
						 
						
							2014-07-30 12:14:10 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a382cbe4eb 
								
							 
						 
						
							
							
								
								clang-format: [proto] Improve formatting of text-proto options.  
							
							 
							
							... 
							
							
							
							Initial patch and tests by Kaushik Sridharan, thank you!
llvm-svn: 214084 
							
						 
						
							2014-07-28 14:08:09 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								6ba1638f0b 
								
							 
						 
						
							
							
								
								clang-format: Improve operator and template recognition.  
							
							 
							
							... 
							
							
							
							Before:
  static_assert(is_convertible < A &&, B > ::value, "AAA");
After:
  static_assert(is_convertible<A &&, B>::value, "AAA");
llvm-svn: 214075 
							
						 
						
							2014-07-28 13:19:58 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								8184d66f4b 
								
							 
						 
						
							
							
								
								clang-format: Improve pointer/reference detection.  
							
							 
							
							... 
							
							
							
							Before (with left pointer alignment):
  void f(int i = 0, SomeType* *temps = NULL);
After:
  void f(int i = 0, SomeType** temps = NULL);
llvm-svn: 214071 
							
						 
						
							2014-07-28 12:24:21 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								2ac3fdfd4a 
								
							 
						 
						
							
							
								
								clang-format: Fix unary operator recognition.  
							
							 
							
							... 
							
							
							
							Before:
  int x = ~ * p;
After:
  int x = ~*p;
llvm-svn: 214070 
							
						 
						
							2014-07-28 12:08:16 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								8b76d608b8 
								
							 
						 
						
							
							
								
								clang-format: Fix formatting of lock annotations in lambda definitions.  
							
							 
							
							... 
							
							
							
							Before:
  SomeFunction([](int i)LOCKS_EXCLUDED(a) {});
After:
  SomeFunction([](int i) LOCKS_EXCLUDED(a) {});
llvm-svn: 214069 
							
						 
						
							2014-07-28 12:08:06 +00:00  
						
					 
				
					
						
							
							
								 
								David Blaikie
							
						 
						
							 
							
							
							
							
								
							
							
								3875a82d42 
								
							 
						 
						
							
							
								
								Remove uses of the redundant ".reset(nullptr)" of unique_ptr, in favor of ".reset()"  
							
							 
							
							... 
							
							
							
							It's also possible to just write "= nullptr", but there's some question
of whether that's as readable, so I leave it up to authors to pick which
they prefer for now. If we want to discuss standardizing on one or the
other, we can do that at some point in the future.
llvm-svn: 213439 
							
						 
						
							2014-07-19 01:06:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								fc3861ac48 
								
							 
						 
						
							
							
								
								clang-format: Fix parsing of conditional expressions.  
							
							 
							
							... 
							
							
							
							Before:
  aaaaaa = aaaaaaaaaaaa ? aaaaaaaaaa ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
      : aaaaaaaaaaaaaaaaaaaaaa
      : aaaaaaaaaaaaaaaaaaaaaaaaaaaa;
After:
  aaaaaa = aaaaaaaaaaaa
               ? aaaaaaaaaa ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                            : aaaaaaaaaaaaaaaaaaaaaa
               : aaaaaaaaaaaaaaaaaaaaaaaaaaaa;
llvm-svn: 213258 
							
						 
						
							2014-07-17 12:22:04 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								3064620d0d 
								
							 
						 
						
							
							
								
								clang-format: Improve cast detection (fix false positive).  
							
							 
							
							... 
							
							
							
							Before:
  fn(a)(b)+1;
After:
  fn(a)(b) + 1;
llvm-svn: 212935 
							
						 
						
							2014-07-14 12:38:38 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								85bcadcdc6 
								
							 
						 
						
							
							
								
								clang-format: Fix behavior around pointer-to-member invocations.  
							
							 
							
							... 
							
							
							
							Before:
  (aaaaaaaaaa->*
   bbbbbbb)(aaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaa));
After:
  (aaaaaaaaaa->*bbbbbbb)(
      aaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaa));
llvm-svn: 212617 
							
						 
						
							2014-07-09 13:07:57 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								4355e7f0ef 
								
							 
						 
						
							
							
								
								clang-format: Revamp function declaration/definition indentation.  
							
							 
							
							... 
							
							
							
							Key changes:
- Correctly (well ...) distinguish function declarations and variable
  declarations with ()-initialization.
- Don't indent when breaking function declarations/definitions after the
  return type.
- Indent variable declarations and typedefs when breaking after the
  type.
This fixes llvm.org/PR17999.
llvm-svn: 212591 
							
						 
						
							2014-07-09 07:50:33 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								2520fe9662 
								
							 
						 
						
							
							
								
								clang-format: Support member function reference qualifiers.  
							
							 
							
							... 
							
							
							
							Before:
  string // break
      operator()() &
  {}
After:
  string // break
  operator()() & {}
llvm-svn: 212041 
							
						 
						
							2014-06-30 13:54:27 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								91beebd04a 
								
							 
						 
						
							
							
								
								clang-format: Improve expression heuristics.  
							
							 
							
							... 
							
							
							
							Upon encountering a binary operator inside parentheses, assume that the
parentheses contain an expression.
Before:
  MACRO('0' <= c&& c <= '9');
After:
  MACRO('0' <= c && c <= '9');
llvm-svn: 212040 
							
						 
						
							2014-06-30 13:44:47 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a2fb50f9b3 
								
							 
						 
						
							
							
								
								clang-format: Understand that breaking before lambdas is fine.  
							
							 
							
							... 
							
							
							
							Before:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa([](
      const aaaaaaaaaa &a) { return a; });
After:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      [](const aaaaaaaaaa &a) { return a; });
llvm-svn: 211575 
							
						 
						
							2014-06-24 09:15:49 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								9c2820c4e3 
								
							 
						 
						
							
							
								
								clang-format: [proto] Add required space before absolute references.  
							
							 
							
							... 
							
							
							
							llvm-svn: 211488 
							
						 
						
							2014-06-23 07:36:25 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								32ccb03871 
								
							 
						 
						
							
							
								
								clang-format: Fix corner case in pointer/reference detection.  
							
							 
							
							... 
							
							
							
							llvm-svn: 211487 
							
						 
						
							2014-06-23 07:36:18 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								553d4878da 
								
							 
						 
						
							
							
								
								clang-format: Introduce style with spaces on both sides of */&.  
							
							 
							
							... 
							
							
							
							Patch by Janusz Sobczak (slightly extended).
This fixes llvm.org/19929.
llvm-svn: 211098 
							
						 
						
							2014-06-17 12:40:34 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								4ac7de7199 
								
							 
						 
						
							
							
								
								clang-format: Fix pointer/reference detection after decltype.  
							
							 
							
							... 
							
							
							
							Before:
  [](const decltype(*a) & value) {}
After:
  [](const decltype(*a)& value) {}
llvm-svn: 210643 
							
						 
						
							2014-06-11 07:35:16 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								17062ff550 
								
							 
						 
						
							
							
								
								clang-format: [JS] Treat dict literals similar to objc method exprs.  
							
							 
							
							... 
							
							
							
							Before:
  return {
    link:
        function() {
          f();  //
        }
        };
  return {
    a: a,
    link: function() {
      f();  //
    }
  }
After:
  return {
    link: function() {
      f();  //
    }
  };
  return {
    a: a,
    link: function() {
      f();  //
    }
  };
llvm-svn: 210537 
							
						 
						
							2014-06-10 14:44:02 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ecaba17996 
								
							 
						 
						
							
							
								
								clang-format: Increase penalty for wrapping array subscript expressions  
							
							 
							
							... 
							
							
							
							Before:
  aaaaaaaaaaa aaaaaaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaa->aaaaaaaaa[0].aaaaaaa
                                    [0].aaaaaaaaaaaaaaaaaaaaaa();
After:
  aaaaaaaaaaa aaaaaaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaa->aaaaaaaaa[0]
                                    .aaaaaaa[0]
                                    .aaaaaaaaaaaaaaaaaaaaaa();
llvm-svn: 210529 
							
						 
						
							2014-06-10 13:27:57 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								4b56692e30 
								
							 
						 
						
							
							
								
								[C++11] Use 'nullptr'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 210448 
							
						 
						
							2014-06-09 02:04:02 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a69ca9be12 
								
							 
						 
						
							
							
								
								clang-format: Leave empty lines within UnwrappedLines.  
							
							 
							
							... 
							
							
							
							These are commonly used to structure things like enums or long braced
lists. There doesn't seem to be a good reason to have the behavior in
such structures be different from the behavior between statements.
llvm-svn: 210183 
							
						 
						
							2014-06-04 12:40:57 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								114a2bc9d2 
								
							 
						 
						
							
							
								
								clang-format: Refactor indentation behavior for multiple nested blocks.  
							
							 
							
							... 
							
							
							
							This fixes a few oddities when formatting multiple nested JavaScript
blocks, e.g.:
Before:
  promise.then(
      function success() {
        doFoo();
        doBar();
      },
      [], function error() {
        doFoo();
        doBaz();
      });
  promise.then([],
               function success() {
                 doFoo();
                 doBar();
               },
               function error() {
    doFoo();
    doBaz();
  });
After:
  promise.then(
      function success() {
        doFoo();
        doBar();
      },
      [],
      function error() {
        doFoo();
        doBaz();
      });
  promise.then([],
               function success() {
                 doFoo();
                 doBar();
               },
               function error() {
                 doFoo();
                 doBaz();
               });
llvm-svn: 210097 
							
						 
						
							2014-06-03 12:02:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								7d028298ce 
								
							 
						 
						
							
							
								
								clang-format: Fix special case of binary operator detection.  
							
							 
							
							... 
							
							
							
							There is a pattern where evaluation order is used as control flow.
This patch special-cases a commonly occuring version of this pattern.
Before:
  Aaaaa *aaa = nullptr;
  // ...
  aaa &&aaa->f();
After:
  Aaaaa *aaa = nullptr;
  // ...
  aaa && aaa->f();
llvm-svn: 210017 
							
						 
						
							2014-06-02 11:54:20 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								4afc6b3e16 
								
							 
						 
						
							
							
								
								clang-format: No space between ")" and braced init list.  
							
							 
							
							... 
							
							
							
							Before:
  auto j = decltype(i) {};
After:
  auto j = decltype(i){};
This fixes llvm.org/PR19892.
llvm-svn: 210013 
							
						 
						
							2014-06-02 10:57:55 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								e18ff37e08 
								
							 
						 
						
							
							
								
								clang-format: Fix Allman brace breaking of enums.  
							
							 
							
							... 
							
							
							
							Before:
  enum Side
  { LEFT,
    RIGHT };
After:
  enum Side
  {
    LEFT,
    RIGHT
  };
This fixes llvm.org/PR19911.
llvm-svn: 210011 
							
						 
						
							2014-06-02 10:17:32 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								e3f907fded 
								
							 
						 
						
							
							
								
								clang-format: Fix trailing const (etc.) with Allman brace style.  
							
							 
							
							... 
							
							
							
							Before:
  void someLongFunction(int someLongParameter)
      const
  {
  }
After:
  void someLongFunction(
      int someLongParameter) const
  {
  }
This fixes llvm.org/PR19912.
llvm-svn: 210010 
							
						 
						
							2014-06-02 09:52:08 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								d39312ec84 
								
							 
						 
						
							
							
								
								clang-format: Don't break before a case's colon.  
							
							 
							
							... 
							
							
							
							Before (with just the right line length:
  switch (a) {
  case some_namespace::some_constant
      :
    return;
  }
After:
  switch (a) {
  case some_namespace::
      some_constant:
    return;
  }
llvm-svn: 209725 
							
						 
						
							2014-05-28 10:09:11 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ba1b6bb667 
								
							 
						 
						
							
							
								
								clang-format: Keep '{' of dict literals on the same line in Allman style  
							
							 
							
							... 
							
							
							
							Before:
  void f()
  {
    [object
        someMethod:@
        { @"a" : @"b" }];
  }
After:
  void f()
  {
    [object someMethod:@{ @"a" : @"b" }];
  }
This fixes llvm.org/PR19854.
llvm-svn: 209615 
							
						 
						
							2014-05-26 07:24:34 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								565ed5ed08 
								
							 
						 
						
							
							
								
								clang-format: Don't use Allman brace breaking for ObjC blocks.  
							
							 
							
							... 
							
							
							
							It just seems wrong. This fixes llvm.org/PR19736.
llvm-svn: 209440 
							
						 
						
							2014-05-22 13:53:55 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								49802ef93b 
								
							 
						 
						
							
							
								
								clang-format: [JS] Understand line breaks in concatenated strings.  
							
							 
							
							... 
							
							
							
							Before:
  var literal = 'hello ' + 'world';
After:
  var literal = 'hello ' +
                'world';
There is no reason to concatenated two string literals with a '+' unless
the line break is intended.
llvm-svn: 209413 
							
						 
						
							2014-05-22 09:10:04 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								3948516a03 
								
							 
						 
						
							
							
								
								clang-format: Correctly identify multiplications in braces init lists.  
							
							 
							
							... 
							
							
							
							Before:
  int i{a *b};
After:
  int i{a * b};
Also fix unrelated issue where braced init lists were counted as blocks
and prevented single-line functions.
llvm-svn: 209412 
							
						 
						
							2014-05-22 09:00:33 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								5f3ea477cf 
								
							 
						 
						
							
							
								
								clang-format: Correctly calculate line lenghts for nest blocks.  
							
							 
							
							... 
							
							
							
							If simple (one-statement) blocks can be inlined, the length needs to be
calculated correctly.
Before (in JavaScript but this also affects lambdas, etc.):
  var x = {
    valueOf: function() { return 1; }
  };
After:
  var x = {valueOf: function() { return 1; }};
llvm-svn: 209410 
							
						 
						
							2014-05-22 08:36:53 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								0dd5291e69 
								
							 
						 
						
							
							
								
								clang-format: [JS] Support ES6 destructuring assignments.  
							
							 
							
							... 
							
							
							
							Before:
  var[a, b, c] = [1, 2, 3];
After:
  var [a, b, c] = [1, 2, 3];
llvm-svn: 209113 
							
						 
						
							2014-05-19 07:37:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								0a1e5ace26 
								
							 
						 
						
							
							
								
								clang-format: Don't break in the middle of ">>".  
							
							 
							
							... 
							
							
							
							Before:
  zzzzzzzzzz = bbbbbbbbbbbbbbbbb >
               > aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
  zzzzzzzzzz
      = bbbbbbbbbbbbbbbbb
        >> aaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaa);
This fixes llvm.org/PR19731.
llvm-svn: 208672 
							
						 
						
							2014-05-13 08:01:47 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b05a81debb 
								
							 
						 
						
							
							
								
								clang-format: Fix bug introduced by r208392.  
							
							 
							
							... 
							
							
							
							Also run clang-format over clang-format's files.
llvm-svn: 208409 
							
						 
						
							2014-05-09 13:11:16 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								8951908218 
								
							 
						 
						
							
							
								
								clang-format: [JS] Fix spacing in dict literals.  
							
							 
							
							... 
							
							
							
							Before:
  someVariable = {'a':[{}]};
After:
  someVariable = {'a': [{}]};
llvm-svn: 208403 
							
						 
						
							2014-05-09 10:26:08 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								2145bc0229 
								
							 
						 
						
							
							
								
								[C++11] Use 'nullptr'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 208392 
							
						 
						
							2014-05-09 08:15:10 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ea2d042f89 
								
							 
						 
						
							
							
								
								clang-format: Fix binary operator detection before lambdas.  
							
							 
							
							... 
							
							
							
							Before:
  bool foo = true&& [] { return false; }();
After:
  bool foo = true && [] { return false; }();
llvm-svn: 208288 
							
						 
						
							2014-05-08 08:50:10 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f9ae312fc0 
								
							 
						 
						
							
							
								
								clang-format: [JS] Initial support for regex literals.  
							
							 
							
							... 
							
							
							
							llvm-svn: 208281 
							
						 
						
							2014-05-08 07:01:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								8acf822b6f 
								
							 
						 
						
							
							
								
								clang-format: Fix corner cases for comments in if conditions.  
							
							 
							
							... 
							
							
							
							Before:
  if ( // a
          x + 3) { ..
After:
  if ( // a
      x + 3) { ..
llvm-svn: 208175 
							
						 
						
							2014-05-07 09:23:05 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								7a2d60e328 
								
							 
						 
						
							
							
								
								clang-format: Fix bad space before braced initializer.  
							
							 
							
							... 
							
							
							
							Before:
  new int {1};
After:
  new int{1};
llvm-svn: 208168 
							
						 
						
							2014-05-07 07:59:03 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								484033b188 
								
							 
						 
						
							
							
								
								clang-format: [JS] Keep space after closure style comments.  
							
							 
							
							... 
							
							
							
							Before:
  var x = /** @type {foo} */ (bar);
After:
  var x = /** @type {foo} */(bar);
llvm-svn: 208093 
							
						 
						
							2014-05-06 14:41:29 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								166c19bd37 
								
							 
						 
						
							
							
								
								clang-format: [JS] Keep space between 'return' and '['.  
							
							 
							
							... 
							
							
							
							llvm-svn: 208090 
							
						 
						
							2014-05-06 14:12:21 +00:00  
						
					 
				
					
						
							
							
								 
								Dinesh Dwivedi
							
						 
						
							 
							
							
							
							
								
							
							
								2e92e66f66 
								
							 
						 
						
							
							
								
								Fixed one issue with casting  
							
							 
							
							... 
							
							
							
							Before:
(void) SimplifyICmpOperands(Cond, LHS, RHS);
After:
(void)SimplifyICmpOperands(Cond, LHS, RHS);
Differential Revision: http://reviews.llvm.org/D3615 
llvm-svn: 208080 
							
						 
						
							2014-05-06 11:46:49 +00:00  
						
					 
				
					
						
							
							
								 
								Dinesh Dwivedi
							
						 
						
							 
							
							
							
							
								
							
							
								13b9b7e0e8 
								
							 
						 
						
							
							
								
								Pulled out cast detection in TokenAnnotator into its own function  
							
							 
							
							... 
							
							
							
							This is to remove FIXME added in r207964.
Differential Revision: http://reviews.llvm.org/D3619 
llvm-svn: 208071 
							
						 
						
							2014-05-06 09:08:34 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f10a28d705 
								
							 
						 
						
							
							
								
								clang-format: Understand functions with decltype return type.  
							
							 
							
							... 
							
							
							
							Before:
  decltype(long_name_forcing_break)
      f() {}
After:
  decltype(long_name_forcing_break)
  f() {}
llvm-svn: 207965 
							
						 
						
							2014-05-05 13:48:09 +00:00  
						
					 
				
					
						
							
							
								 
								Dinesh Dwivedi
							
						 
						
							 
							
							
							
							
								
							
							
								76f98f8047 
								
							 
						 
						
							
							
								
								Added some heuristics to identify c style casting  
							
							 
							
							... 
							
							
							
							Before:
void f() { my_int a = (my_int) * b; }
void f() { return P ? (my_int) * P : (my_int)0; }
After:
void f() { my_int a = (my_int)*b; }
void f() { return P ? (my_int)*P : (my_int)0; }
Differential Revision: http://reviews.llvm.org/D3576 
llvm-svn: 207964 
							
						 
						
							2014-05-05 13:14:35 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								0e6c51c889 
								
							 
						 
						
							
							
								
								clang-format: Improve understanding of decltype.  
							
							 
							
							... 
							
							
							
							Before:
  SomeFunction([](decltype(x), A * a) {});
After:
  SomeFunction([](decltype(x), A *a) {});
llvm-svn: 207961 
							
						 
						
							2014-05-05 12:36:29 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								942d971c84 
								
							 
						 
						
							
							
								
								clang-format: Improve binary operator detection.  
							
							 
							
							... 
							
							
							
							Before:
  *(int *)(p &~3UL) = 0;
After:
  *(int *)(p & ~3UL) = 0;
This fixes llvm.org/PR19464.
llvm-svn: 207405 
							
						 
						
							2014-04-28 09:19:28 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								031e2409f9 
								
							 
						 
						
							
							
								
								clang-format: Fixes spaces in case statements.  
							
							 
							
							... 
							
							
							
							This fixes llvm.org/PR19482.
Before:
  switch (a) {
    case(B) :
      return;
  }
After:
  switch (a) {
    case (B):
      return;
  }
llvm-svn: 207402 
							
						 
						
							2014-04-28 07:48:36 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								437c3f5188 
								
							 
						 
						
							
							
								
								clang-format: Don't wrap after @interface.  
							
							 
							
							... 
							
							
							
							This fixes llvm.org/PR19450.
Before:
  @interface
  BookmarkHomeHandsetViewController ()<BookmarkAllCollectionViewDelegate,
                                       BookmarkFolderCollectionViewDelegate,
                                       BookmarkMenuViewControllerDelegate,
                                       BookmarkSearchViewControllerDelegate> {
  }
After:
  @interface aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ()<
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa> {
  }
llvm-svn: 207400 
							
						 
						
							2014-04-28 07:34:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chandler Carruth
							
						 
						
							 
							
							
							
							
								
							
							
								57f5fbe3b2 
								
							 
						 
						
							
							
								
								[Modules] Update Clang's two files that use DEBUG(...) without defining  
							
							 
							
							... 
							
							
							
							DEBUG_TYPE to do so. LLVM's Debug.h requires this as of r206822.
llvm-svn: 206823 
							
						 
						
							2014-04-21 22:55:36 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								0e61784ae5 
								
							 
						 
						
							
							
								
								clang-format: Add special case to reduce indentaiton in streams.  
							
							 
							
							... 
							
							
							
							This is similar to how we treat assignments and seems to be generally
desirable.
Before:
  llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                      aaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                      aaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
  llvm::errs() << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaa);
llvm-svn: 206384 
							
						 
						
							2014-04-16 12:26:54 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								783bac6bba 
								
							 
						 
						
							
							
								
								clang-format: Understand proto text format without commas.  
							
							 
							
							... 
							
							
							
							Also removed spaces before colons as they don't seem to be used
frequently.
Before:
optional int32 b = 2
    [(foo_options) = {aaaaaaaaaaaaaaaaaaa : 123 bbbbbbbbbbbbbbbbbbbbbbbb :
                          "baz"}];
After:
optional int32 b = 2 [(foo_options) = {aaaaaaaaaaaaaaaaaaa: 123,
                                       bbbbbbbbbbbbbbbbbbbbbbbb:"baz"}];
llvm-svn: 206269 
							
						 
						
							2014-04-15 09:54:30 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								866468ae4d 
								
							 
						 
						
							
							
								
								clang-format: Fix regression caused by r206165.  
							
							 
							
							... 
							
							
							
							llvm-svn: 206173 
							
						 
						
							2014-04-14 13:15:29 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								72ab43b28b 
								
							 
						 
						
							
							
								
								clang-format: Fix incorrect &&-detection in macros.  
							
							 
							
							... 
							
							
							
							Before:
  #define A(a, b) (a &&b)
After:
  #define A(a, b) (a && b)
This fixes llvm.org/PR19343.
llvm-svn: 206165 
							
						 
						
							2014-04-14 12:50:02 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								c0d606a584 
								
							 
						 
						
							
							
								
								clang-format: Don't allow hanging indentation for operators on new lines  
							
							 
							
							... 
							
							
							
							Before:
  if (aaaaaaaa && bbbbbbbbbbbbbbb // need to wrap
                  == cccccccccccccc) ...
After:
  if (aaaaaaaa
      && bbbbbbbbbbbbbbb // need to wrap
         == cccccccccccccc) ...
The same rule has already be implemented for BreakBeforeBinaryOperators
set to false in r205527.
llvm-svn: 206159 
							
						 
						
							2014-04-14 11:08:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								35ec2b244a 
								
							 
						 
						
							
							
								
								clang-format: Improve formatting of annotated variables.  
							
							 
							
							... 
							
							
							
							Before:
  bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa GUARDED_BY(
      aaaaaaaaaaaa) = aaaaaaaa::aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
After:
  bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa GUARDED_BY(aaaaaaaaaaaa) =
      aaaaaaaa::aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
llvm-svn: 206155 
							
						 
						
							2014-04-14 08:15:20 +00:00  
						
					 
				
					
						
							
							
								 
								Manuel Klimek
							
						 
						
							 
							
							
							
							
								
							
							
								1fcbe675fa 
								
							 
						 
						
							
							
								
								Correctly handle escaped newlines when the next token starts without a space.  
							
							 
							
							... 
							
							
							
							We will need this to correctly handle conflict markers inside macro
definitions.
llvm-svn: 206029 
							
						 
						
							2014-04-11 12:27:47 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f9fc215f82 
								
							 
						 
						
							
							
								
								clang-format: Treat a trailing comment like a trailing comma in braced lists.  
							
							 
							
							... 
							
							
							
							Before:
  static StructInitInfo module = {MODULE_BUILTIN, /* type */
                                  "streams" /* name */
  };
After:
  static StructInitInfo module = {
      MODULE_BUILTIN, /* type */
      "streams"       /* name */
  };
This fixes llvm.org/PR19378.
llvm-svn: 205851 
							
						 
						
							2014-04-09 13:18:49 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f9a0906b98 
								
							 
						 
						
							
							
								
								clang-format: Allow breaking between trailing annotations in more cases.  
							
							 
							
							... 
							
							
							
							Before:
  void aaaaaaaaaaaaaa(aaaaaaaa aaa) override AAAAAAAAAAAAAAAAAAAAAAAA(
      aaaaaaaaaaaaaaa);
After:
  void aaaaaaaaaaaaaa(aaaaaaaa aaa) override
      AAAAAAAAAAAAAAAAAAAAAAAA(aaaaaaaaaaaaaaa);
llvm-svn: 205846 
							
						 
						
							2014-04-09 10:29:11 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b48d3afcd5 
								
							 
						 
						
							
							
								
								clang-format: Keep more trailing annotations on the same line.  
							
							 
							
							... 
							
							
							
							More precisely keep all short annotations (<10 characters) on the same
line if possible. Previously, clang-format would only prefer to do so
for "const", "override" and "final". However, it seems to be generally
preferable, especially because some codebases have to wrap those in
macros for backwards compatibility.
Before:
  void someLongFunction(int someLongParameter)
      OVERRIDE {}
After:
  void someLongFunction(
      int someLongParameter) OVERRIDE {}
This fixes llvm.org/PR19363.
llvm-svn: 205845 
							
						 
						
							2014-04-09 10:01:49 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b175d57edc 
								
							 
						 
						
							
							
								
								clang-format: Recognize lists ending in trailing commas correctly.  
							
							 
							
							... 
							
							
							
							Previously, this did not look through trailing comments leading to a few
formatting oddities.
llvm-svn: 205843 
							
						 
						
							2014-04-09 09:53:23 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b77105d2ce 
								
							 
						 
						
							
							
								
								clang-format: Fix incorrect multi-block-parameter computation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 205763 
							
						 
						
							2014-04-08 14:04:31 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								139d4a3875 
								
							 
						 
						
							
							
								
								clang-format: Correctly understand arrays of pointers.  
							
							 
							
							... 
							
							
							
							Before:
  A<int * []> a;
After:
  A<int *[]> a;
This fixes llvm.org/PR19360.
llvm-svn: 205761 
							
						 
						
							2014-04-08 13:07:41 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								cc7bf7fda1 
								
							 
						 
						
							
							
								
								clang-format: Understand that "auto" is a type.  
							
							 
							
							... 
							
							
							
							Before:
  MACRO(auto * a);
After:
  MACRO(auto *a);
llvm-svn: 205517 
							
						 
						
							2014-04-03 09:00:49 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								e1e4319ab7 
								
							 
						 
						
							
							
								
								clang-format: Support configurable list of foreach-macros.  
							
							 
							
							... 
							
							
							
							This fixes llvm.org/PR17242.
Patch by Brian Green, thank you!
llvm-svn: 205307 
							
						 
						
							2014-04-01 12:55:11 +00:00  
						
					 
				
					
						
							
							
								 
								Manuel Klimek
							
						 
						
							 
							
							
							
							
								
							
							
								9481556eb6 
								
							 
						 
						
							
							
								
								Get rid of the adapted isLiteral method.  
							
							 
							
							... 
							
							
							
							We don't want to deviate from clang's standard terminology.
llvm-svn: 204997 
							
						 
						
							2014-03-28 09:27:09 +00:00  
						
					 
				
					
						
							
							
								 
								Manuel Klimek
							
						 
						
							 
							
							
							
							
								
							
							
								1f9d80ac66 
								
							 
						 
						
							
							
								
								Improve handling of bool expressions in template arguments.  
							
							 
							
							... 
							
							
							
							Now correctly formats:
  foo<true && false>();
llvm-svn: 204950 
							
						 
						
							2014-03-27 19:00:52 +00:00  
						
					 
				
					
						
							
							
								 
								Manuel Klimek
							
						 
						
							 
							
							
							
							
								
							
							
								f81e5c0e50 
								
							 
						 
						
							
							
								
								Fix bool expression special case.  
							
							 
							
							... 
							
							
							
							Clang-format now correctly formats:
  some_type<a * b> v;
  template <bool a, bool b> typename enabled_if<a && b>::type f() {}
llvm-svn: 204913 
							
						 
						
							2014-03-27 11:17:36 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								c13ee34378 
								
							 
						 
						
							
							
								
								clang-format: Correctly identify ObjC Block with return type.  
							
							 
							
							... 
							
							
							
							llvm-svn: 204905 
							
						 
						
							2014-03-27 09:43:54 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a65e887587 
								
							 
						 
						
							
							
								
								clang-format: Fix incorrect &/* detection.  
							
							 
							
							... 
							
							
							
							Before:
  STATIC_ASSERT((a &b) == 0);
After:
  STATIC_ASSERT((a & b) == 0);
llvm-svn: 204709 
							
						 
						
							2014-03-25 10:52:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a125d53a7b 
								
							 
						 
						
							
							
								
								clang-format: Let a trailing comma in braced lists enforce linebreaks.  
							
							 
							
							... 
							
							
							
							Before:
  vector<int> x{1, 2, 3, 4, };
After:
  vector<int> x{
      1, 2, 3, 4,
  };
This fixes llvm.org/PR18519.
llvm-svn: 204458 
							
						 
						
							2014-03-21 12:38:57 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								28df0a356e 
								
							 
						 
						
							
							
								
								clang-format: Fix for r204456.  
							
							 
							
							... 
							
							
							
							llvm-svn: 204457 
							
						 
						
							2014-03-21 12:15:40 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								14e58e5290 
								
							 
						 
						
							
							
								
								clang-format: Preserve meaning of trailing comments on parameters.  
							
							 
							
							... 
							
							
							
							Formatting:
  SomeFunction(a,
            b, // comment
            c);
Before:
  SomeFunction(a, b, // comment
               c);
After:
  SomeFunction(a,
               b, // comment
               c);
llvm-svn: 204456 
							
						 
						
							2014-03-21 11:58:45 +00:00  
						
					 
				
					
						
							
							
								 
								Manuel Klimek
							
						 
						
							 
							
							
							
							
								
							
							
								819788da83 
								
							 
						 
						
							
							
								
								Fix crasher bug.  
							
							 
							
							... 
							
							
							
							Due to not resetting the fake rparen data on the token when iterating
over annotated lines, we would pop the last element of the paren stack.
This patch fixes the underlying root cause, and makes the code more
robust against similar problems in the future:
- reset the first token when iterating on the same annotated lines due
  to preprocessor branches
- never pop the last element from the paren stack, so we do not crash,
  but rather incorrectly format
- add assert()s so we can figure out if our assumptions are violated
llvm-svn: 204140 
							
						 
						
							2014-03-18 11:22:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								c580af96fa 
								
							 
						 
						
							
							
								
								clang-format: Detect weird macro lambda usage.  
							
							 
							
							... 
							
							
							
							Before:
  void f() {
    MACRO((const AA & a) { return 1; });
  }
After:
  void f() {
    MACRO((const AA &a) { return 1; });
  }
llvm-svn: 203551 
							
						 
						
							2014-03-11 09:29:46 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								84a12e18d3 
								
							 
						 
						
							
							
								
								clang-format: Add spaces between lambdas and comments.  
							
							 
							
							... 
							
							
							
							Before:
  void f() {
    bar([]() {}// Does not respect SpacesBeforeTrailingComments
        );
  }
After:
  void f() {
    bar([]() {} // Does not respect SpacesBeforeTrailingComments
        );
  }
This fixes llvm.org/PR19017.
llvm-svn: 203466 
							
						 
						
							2014-03-10 15:06:25 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								81a20787db 
								
							 
						 
						
							
							
								
								clang-format: Add spaces around trailing/lambda return types.  
							
							 
							
							... 
							
							
							
							Before:
  int c = []()->int { return 2; }();
After:
  int c = []() -> int { return 2; }();
llvm-svn: 203452 
							
						 
						
							2014-03-10 10:02:02 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								5550de684f 
								
							 
						 
						
							
							
								
								clang-format: Don't wrap "const" etc. of function declarations.  
							
							 
							
							... 
							
							
							
							Generally people seem to prefer wrapping the first function parameter
over wrapping the trailing tokens "const", "override" and "final". This
does not extend to function-like annotations and probably not to other
non-standard annotations.
Before:
  void someLongFunction(int SomeLongParameter)
      const { ... }
After:
  void someLongFunction(
      int SomeLongParameter) const { ... }
llvm-svn: 201504 
							
						 
						
							2014-02-17 07:57:46 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								3a122c029d 
								
							 
						 
						
							
							
								
								clang-format: Fix formatting of class template declaration.  
							
							 
							
							... 
							
							
							
							Before:
  template <class R, class C>
  struct Aaaaaaaaaaaaaaaaa<R (C::*)(int)
                           const> : Aaaaaaaaaaaaaaaaa<R (C::*)(int)> {};
After:
  template <class R, class C>
  struct Aaaaaaaaaaaaaaaaa<R (C::*)(int) const>
      : Aaaaaaaaaaaaaaaaa<R (C::*)(int)> {};
llvm-svn: 201424 
							
						 
						
							2014-02-14 18:22:40 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								9cc3e97685 
								
							 
						 
						
							
							
								
								clang-format: Fix range-based for-loop formatting.  
							
							 
							
							... 
							
							
							
							Before:
  for (aaaaaaaaa aaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaa.aaaaaaaaaaaa()
           .aaaaaaaaa()
           .a()) {
  }
After:
  for (aaaaaaaaa aaaaaaaaaaaaaaaaaaaaa :
       aaaaaaaaaaaa.aaaaaaaaaaaa().aaaaaaaaa().a()) {
  }
llvm-svn: 200968 
							
						 
						
							2014-02-07 10:09:46 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f24301d79c 
								
							 
						 
						
							
							
								
								clang-format: More custom option fixes for protocol buffer files.  
							
							 
							
							... 
							
							
							
							Before:
  repeated double value = 1 [(aaaaaaa.aaaaaaaaa) = {
                               aaaaaaaaaaaaaaaa : AAAAAAAAAA,
                               bbbbbbbbbbbbbbbb : BBBBBBBBBB
                             }];
After:
  repeated double value = 1
      [(aaaaaaa.aaaaaaaaa) = {aaaaaaaaaaaaaaaa : AAAAAAAAAA,
                              bbbbbbbbbbbbbbbb : BBBBBBBBBB}];
llvm-svn: 200406 
							
						 
						
							2014-01-29 18:52:43 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								6e58feef76 
								
							 
						 
						
							
							
								
								clang-format: Fix formatting of custom proto options.  
							
							 
							
							... 
							
							
							
							Before:
  repeated double value = 1 [(aaaaaaa.aaaaaaaaa) = {
                              aaaaaaaaaaaaaaaaa : AAAAAAAA
                            }];
After:
  repeated double value = 1
      [(aaaaaaa.aaaaaaaaa) = {aaaaaaaaaaaaaaaaa : AAAAAAAA}];
llvm-svn: 200405 
							
						 
						
							2014-01-29 18:43:40 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								559b63cbb9 
								
							 
						 
						
							
							
								
								clang-format: Understand __attribute__s preceding parameter lists.  
							
							 
							
							... 
							
							
							
							Before:
  ReturnType __attribute__((unused))
      function(int i);
After:
  ReturnType __attribute__((unused))
  function(int i);
This fixes llvm.org/PR18632.
llvm-svn: 200337 
							
						 
						
							2014-01-28 20:13:43 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a0e9be2bb2 
								
							 
						 
						
							
							
								
								clang-format: Fix option formatting in protocol buffer files.  
							
							 
							
							... 
							
							
							
							Before:
  optional int32 foo[ default = true, deprecated = true ];
After:
  optional int32 foo[default = true, deprecated = true];
llvm-svn: 200327 
							
						 
						
							2014-01-28 18:51:11 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								e9beea24ef 
								
							 
						 
						
							
							
								
								clang-format: Add support for a space after @property  
							
							 
							
							... 
							
							
							
							Mozilla and WebKit seem to use a space after @property (verified by
grepping their codebases) so we turn this on there as well.
Change by Christian Legnitto. Thank you!
llvm-svn: 200320 
							
						 
						
							2014-01-28 15:20:33 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ff974ab88a 
								
							 
						 
						
							
							
								
								clang-format: Fix incorrect space removal.  
							
							 
							
							... 
							
							
							
							Before:
  Deleted &operator=(const Deleted &)&= default;
  Deleted &operator=(const Deleted &)&&= delete;
After:
  Deleted &operator=(const Deleted &)& = default;
  Deleted &operator=(const Deleted &)&& = delete;
llvm-svn: 200073 
							
						 
						
							2014-01-25 09:16:02 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								215d6c8c50 
								
							 
						 
						
							
							
								
								clang-format: Treat "." in protos like namespace separators.  
							
							 
							
							... 
							
							
							
							Before:
  optional really.really.long.and.qualified.type.aaaaaaa
      .aaaaaaaa another_fiiiiiiiiiiiiiiiiiiiiield = 2;
After:
  optional
     really.really.long.and.qualified.type.aaaaaaa.aaaaaaaa
          another_fiiiiiiiiiiiiiiiiiiiiield = 2;
llvm-svn: 199796 
							
						 
						
							2014-01-22 08:04:52 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								7cfde414e1 
								
							 
						 
						
							
							
								
								clang-format: text following #if is likely an expression.  
							
							 
							
							... 
							
							
							
							Before:
  #if AAAA &&BBBB
After:
  #if AAAA && BBBB
llvm-svn: 199713 
							
						 
						
							2014-01-21 08:56:09 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								929b1db276 
								
							 
						 
						
							
							
								
								clang-format: Properly format custom options in protocol buffer definitions.  
							
							 
							
							... 
							
							
							
							Before:
  option(my_option) = "abc";
After:
  option (my_option) = "abc";
llvm-svn: 199672 
							
						 
						
							2014-01-20 16:47:22 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								7052ce6d8b 
								
							 
						 
						
							
							
								
								clang-format: Better support and testing for protocol buffers.  
							
							 
							
							... 
							
							
							
							With this patch, there is dedicated testing for protocol buffers
(https://developers.google.com/protocol-buffers/ ).
Also some minor tweaks formatting tweaks.
llvm-svn: 199580 
							
						 
						
							2014-01-19 09:04:08 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								31745731e8 
								
							 
						 
						
							
							
								
								clang-format: Fix ObjC block as first call parameter formatting.  
							
							 
							
							... 
							
							
							
							Before:
  foo (^{ bar(); });
After:
  foo(^{ bar(); });
llvm-svn: 199573 
							
						 
						
							2014-01-19 07:46:32 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								47ef6ddece 
								
							 
						 
						
							
							
								
								clang-format: Don't break lines starting with "import <string-literal>"  
							
							 
							
							... 
							
							
							
							The author might be missing the "#" or these might be protocol buffer
definitions. Either way, we should not break the line or the string.
There don't seem to be other valid use cases.
llvm-svn: 199501 
							
						 
						
							2014-01-17 16:21:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a225bcedb4 
								
							 
						 
						
							
							
								
								clang-format: Improve formatting of ObjC Blocks with return type.  
							
							 
							
							... 
							
							
							
							Before:
  int a = [operation block:^int(int * i) { return 1; }];
After:
  int a = [operation block:^int(int *i) { return 1; }];
llvm-svn: 199411 
							
						 
						
							2014-01-16 19:14:34 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								cb51cf409b 
								
							 
						 
						
							
							
								
								clang-format: Enable formatting of lambdas with explicit return type.  
							
							 
							
							... 
							
							
							
							So clang-format can now format:
  int c = []()->int { return 2; }();
  int c = []()->vector<int> { return { 2 }; }();
llvm-svn: 199368 
							
						 
						
							2014-01-16 09:11:55 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b2e10a5459 
								
							 
						 
						
							
							
								
								clang-format: Fixed formatting of JavaScript container literals  
							
							 
							
							... 
							
							
							
							Before:
  var arr = [ 1, 2, 3 ];
  var obj = {a : 1, b : 2, c : 3};
After:
  var arr = [1, 2, 3];
  var obj = {a: 1, b: 2, c: 3};
llvm-svn: 199317 
							
						 
						
							2014-01-15 15:09:08 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f6c7c18b8e 
								
							 
						 
						
							
							
								
								clang-format: Fix corner case with comment in ctor initializer.  
							
							 
							
							... 
							
							
							
							Formatting:
  Constructor() :
      // Comment forcing unwanted break.
      aaaa(aaaa) {}
Before:
  Constructor()
      :
        // Comment forcing unwanted break.
        aaaa(aaaa) {}
After:
  Constructor()
      : // Comment forcing unwanted break.
        aaaa(aaaa) {}
llvm-svn: 199107 
							
						 
						
							2014-01-13 14:10:04 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								4d7a97adfc 
								
							 
						 
						
							
							
								
								clang-format: Slightly adapt line break in edge case.  
							
							 
							
							... 
							
							
							
							Before:
  SomeMap[std::pair(aaaaaaaaaaaa, bbbbbbbbbbbbbbb)]
      .insert(ccccccccccccccccccccccc);
After:
  SomeMap[std::pair(aaaaaaaaaaaa, bbbbbbbbbbbbbbb)].insert(
      ccccccccccccccccccccccc);
This seems to be about 3:1 more common in Google and Chromium style and I found
only a handful of instances inside the LLVM codebase.
llvm-svn: 198924 
							
						 
						
							2014-01-10 08:40:17 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b1c19f8987 
								
							 
						 
						
							
							
								
								clang-format: Understand ObjC boxed expressions.  
							
							 
							
							... 
							
							
							
							Before:
  [dictionary setObject:@(1)forKey:@"number"];
After:
  [dictionary setObject:@(1) forKey:@"number"];
llvm-svn: 198920 
							
						 
						
							2014-01-10 07:44:53 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								dc32c1bf3a 
								
							 
						 
						
							
							
								
								clang-format: Understand #pragma mark  
							
							 
							
							... 
							
							
							
							Before:
  #pragma mark Any non - hyphenated or hyphenated string(including parentheses).
After:
  #pragma mark Any non-hyphenated or hyphenated string (including parentheses).
llvm-svn: 198870 
							
						 
						
							2014-01-09 13:56:49 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								7620b6628b 
								
							 
						 
						
							
							
								
								clang-format: Fix spacing in Cpp11 braced lists:  
							
							 
							
							... 
							
							
							
							Before:
  vector<int> foo{ ::SomeFunction()};
After:
  vector<int> foo{::SomeFunction()};
llvm-svn: 198769 
							
						 
						
							2014-01-08 15:41:13 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								1a148b4922 
								
							 
						 
						
							
							
								
								clang-format: Spacing inside enum braces.  
							
							 
							
							... 
							
							
							
							Before (in Google style):
  enum ShortEnum {A, B, C};
After:
  enum ShortEnum { A, B, C };
llvm-svn: 198559 
							
						 
						
							2014-01-05 13:23:23 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								9697281eec 
								
							 
						 
						
							
							
								
								clang-format: Allow formatting short enums on a single line.  
							
							 
							
							... 
							
							
							
							Before:
  enum ShortEnum {
    A,
    B,
    C
  };
After:
  enum ShortEnum { A, B, C };
This seems to be the predominant choice in LLVM/Clang as well as in
Google style.
llvm-svn: 198558 
							
						 
						
							2014-01-05 12:38:10 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								126153ab87 
								
							 
						 
						
							
							
								
								clang-format: Break default arguments less eagerly.  
							
							 
							
							... 
							
							
							
							Before:
  void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaa =
                                              1);
After:
  void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      int aaaaaaaaaaaaaaaaaaaaaaaaaaaa = 1);
llvm-svn: 198070 
							
						 
						
							2013-12-27 06:39:56 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b88b25feec 
								
							 
						 
						
							
							
								
								clang-format: Fix various problems in formatting ObjC blocks.  
							
							 
							
							... 
							
							
							
							Among other things, this fixes llvm.org/PR15269.
llvm-svn: 197900 
							
						 
						
							2013-12-23 07:29:06 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								04b6a081fc 
								
							 
						 
						
							
							
								
								clang-format: Better support for multi-line wide string literals.  
							
							 
							
							... 
							
							
							
							Before:
  SomeFunction(L"A" L"B");
After:
  SomeFunction(L"A"
               L"B");
llvm-svn: 197785 
							
						 
						
							2013-12-20 06:22:01 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								5a611397a2 
								
							 
						 
						
							
							
								
								clang-format: Add special case for leading comments in braced lists.  
							
							 
							
							... 
							
							
							
							A comment following the "{" of a braced list seems to almost always
refer to the first element of the list and thus should be aligned
to it.
Before (with Cpp11 braced list style):
  SomeFunction({  // Comment 1
                   "first entry",
                   // Comment 2
                   "second entry"});
After:
  SomeFunction({// Comment 1
                "first entry",
                // Comment 2
                "second entry"});
llvm-svn: 197725 
							
						 
						
							2013-12-19 21:41:37 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								3460b2546c 
								
							 
						 
						
							
							
								
								clang-format: Fix ObjC method expr in binary expressions.  
							
							 
							
							... 
							
							
							
							Before:
  bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa || [aaaaaaaa aaaaa] ==
                                                         aaaaaaaaaaaaaaaaaaaa);
After:
  bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa ||
            [aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaaaaa);
This fixes llvm.org/PR18271.
llvm-svn: 197552 
							
						 
						
							2013-12-18 07:08:51 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								43e6a28d1f 
								
							 
						 
						
							
							
								
								clang-format: Keep trailing annotations together.  
							
							 
							
							... 
							
							
							
							Before:
  virtual void aaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaa aaaa, aaaaaaaaaaa aaaaa) const
      override;
  virtual void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() const
      override;
After:
  virtual void aaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaa aaaa,
                     aaaaaaaaaaa aaaaa) const override;
  virtual void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()
      const override;
llvm-svn: 197391 
							
						 
						
							2013-12-16 15:01:54 +00:00  
						
					 
				
					
						
							
							
								 
								Alexander Kornienko
							
						 
						
							 
							
							
							
							
								
							
							
								a594ba8a76 
								
							 
						 
						
							
							
								
								Always break before the colon in constructor initializers, when  
							
							 
							
							... 
							
							
							
							BreakConstructorInitializersBeforeComma is true.
This option is used in WebKit style, so this also ensures initializer lists are
not put on a single line, as per the WebKit coding guidelines.
Patch by Florian Sowade!
llvm-svn: 197386 
							
						 
						
							2013-12-16 14:35:51 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								3682fcda17 
								
							 
						 
						
							
							
								
								clang-format: Fix formatting of function type parameters.  
							
							 
							
							... 
							
							
							
							Before:
  void f() { typedef void (*f)(int * a); }
After:
  void f() { typedef void (*f)(int *a); }
llvm-svn: 197369 
							
						 
						
							2013-12-16 08:36:18 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								c39b56fe14 
								
							 
						 
						
							
							
								
								clang-format: Improve handling of raw string literals.  
							
							 
							
							... 
							
							
							
							Especially try to keep existing line breaks before raw string literals,
as the code author might have aligned content to it.
Thereby, clang-format now keeps things like:
  parseStyle(R"(
      BasedOnStyle: Google,
      ColumnLimit: 100)");
  parseStyle(
      R"(BasedOnStyle: Google,
         ColumnLimit: 100)");
llvm-svn: 197368 
							
						 
						
							2013-12-16 07:23:08 +00:00  
						
					 
				
					
						
							
							
								 
								Alexander Kornienko
							
						 
						
							 
							
							
							
							
								
							
							
								3a33f0292b 
								
							 
						 
						
							
							
								
								Implemented GNU-style formatting for compound statements.  
							
							 
							
							... 
							
							
							
							Summary:
Added BraceBreakingStyle::BS_GNU. I'm not sure about the correctness of
static initializer formatting, but compound statements should be fine.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2372 
llvm-svn: 197138 
							
						 
						
							2013-12-12 09:49:52 +00:00  
						
					 
				
					
						
							
							
								 
								Alexander Kornienko
							
						 
						
							 
							
							
							
							
								
							
							
								fdca83d487 
								
							 
						 
						
							
							
								
								Support GNU style rule to put a space before opening parenthesis.  
							
							 
							
							... 
							
							
							
							Summary:
The rule from the GNU style states:
"We find it easier to read a program when it has spaces before the open-parentheses and after the commas."
http://www.gnu.org/prep/standards/standards.html#index-spaces-before-open_002dparen 
This patch makes clang-format adds an option to put spaces before almost all open parentheses, except the cases, where different behavior is dictated by the style rules or language syntax:
  * preprocessor:
    ** function-like macro definitions can't have a space between the macro name and the parenthesis;
    ** `#if defined(...)` can have a space, but it seems, that it's more frequently used without a space in GCC, for example;
  * never add spaces after unary operators;
  * adding spaces between two opening parentheses is controlled with the `SpacesInParentheses` option;
  * never add spaces between `[` and `(` (there's no option yet).
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2326 
llvm-svn: 196901 
							
						 
						
							2013-12-10 10:18:34 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								63af7c482d 
								
							 
						 
						
							
							
								
								clang-format: Be more conservative about braced list column layout.  
							
							 
							
							... 
							
							
							
							Specifically disable it for nested braced lists as it commonly can look
really weird. Eventually, we'll want to become smarter and format some of
the nested lists better.
Before:
  SomeStruct my_struct_array = {
    { aaaaaa,     aaaaaaaa,   aaaaaaaaaa, aaaaaaaaa, aaaaaaaaa,
      aaaaaaaaaa, aaaaaaaaaa, aaaaaaa,    aaa },
    { aaaa, aaaa, aaaa, aaaa, aaaa, aaaa, aaaa, aaa },
    { aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaa,      a,                 aaaaaaaaaa,
      aaaaaaaaa,         aaa },
  };
After:
  SomeStruct my_struct_array = {
    { aaaaaa, aaaaaaaa, aaaaaaaaaa, aaaaaaaaa, aaaaaaaaa, aaaaaaaaaa,
      aaaaaaaaaaaa, aaaaaaa, aaa },
    { aaaa, aaaa, aaaa, aaaa, aaaa, aaaa, aaaa, aaa },
    { aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaa, a, aaaaaaaaaa, aaaaaaaaa, aaa },
  };
llvm-svn: 196783 
							
						 
						
							2013-12-09 14:40:19 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								e0ab9e7936 
								
							 
						 
						
							
							
								
								clang-format: Change line break decisions for array subscripts.  
							
							 
							
							... 
							
							
							
							Before:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<int> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
      [aaaaaaaaaaaa];
After:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<int>
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[aaaaaaaaaaaa];
llvm-svn: 196582 
							
						 
						
							2013-12-06 15:19:50 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								40bc7466a8 
								
							 
						 
						
							
							
								
								clang-format: Fix incorrect space in parameters named by comment.  
							
							 
							
							... 
							
							
							
							This fixes llvm.org/PR17979.
Before:
  void f() { g(/*aaa=*/x, /*bbb=*/ !y); }
After:
  void f() { g(/*aaa=*/x, /*bbb=*/!y); }
llvm-svn: 195553 
							
						 
						
							2013-11-23 14:51:47 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								446d1cd32c 
								
							 
						 
						
							
							
								
								clang-format: The "<" of a template argument is not a binary operator.  
							
							 
							
							... 
							
							
							
							With Style.BreakBeforeBinaryOperators, clang-format breaks incorrectly.
This fixes llvm.org/PR17994.
Before:
  return boost::fusion::at_c<0>(iiii).second == boost::fusion::at_c
                                                <1>(iiii).second;
After:
  return boost::fusion::at_c<0>(iiii).second ==
         boost::fusion::at_c<1>(iiii).second;
llvm-svn: 195552 
							
						 
						
							2013-11-23 14:45:49 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								4bf0d80993 
								
							 
						 
						
							
							
								
								clang-format: Fix bug in ObjC method declaration formatting.  
							
							 
							
							... 
							
							
							
							Also disallow breaking between "@" and "{" or "[".
Before:
  - (NSAttributedString *)attributedStringForSegment:(NSUInteger)segment
                                               index:(NSUInteger)index
                                          attributes:(NSDictionary *)attributes
                                  nonDigitAttributes:(NSDictionary *)
      nonDigitAttributes;
  [mailComposeViewController
     setToRecipients:@
     [ NSBundle.mainBundle.infoDictionary[@"ABBFeedbackEmail"] ]];
After:
  - (NSAttributedString *)attributedStringForSegment:(NSUInteger)segment
                                               index:(NSUInteger)index
                                          attributes:(NSDictionary *)attributes
                                  nonDigitAttributes:
                                      (NSDictionary *)nonDigitAttributes;
  [mailComposeViewController
      setToRecipients:
          @[ NSBundle.mainBundle.infoDictionary[@"ABBFeedbackEmail"] ]];
This fixes llvm.org/PR18030.
llvm-svn: 195550 
							
						 
						
							2013-11-23 14:27:27 +00:00  
						
					 
				
					
						
							
							
								 
								Alexander Kornienko
							
						 
						
							 
							
							
							
							
								
							
							
								9aa62407f6 
								
							 
						 
						
							
							
								
								Better implementation of JavaScript === and !== operators.  
							
							 
							
							... 
							
							
							
							Summary:
Now based on token merging. Now they are not only prevented from being
split, but are actually formatted as comparison operators.
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2240 
llvm-svn: 195354 
							
						 
						
							2013-11-21 12:43:57 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a78d7d4502 
								
							 
						 
						
							
							
								
								clang-format: Improve formatting of ObjC method expressions.  
							
							 
							
							... 
							
							
							
							In particular, make breaking after a parameter's ":" more of a last
resort choice as it significantly affects the readability gained by
aligning the parameters.
Before (in Chromium style - which doesn't allow bin-packing):
  {
    popup_window_.reset([[RenderWidgetPopupWindow alloc]
        initWithContentRect:
            NSMakeRect(
                origin_global.x, origin_global.y, pos.width(), pos.height())
                  styleMask:NSBorderlessWindowMask
                    backing:NSBackingStoreBuffered
                      defer:NO]);
  }
After:
  {
    popup_window_.reset([[RenderWidgetPopupWindow alloc]
        initWithContentRect:NSMakeRect(origin_global.x,
                                       origin_global.y,
                                       pos.width(),
                                       pos.height())
                  styleMask:NSBorderlessWindowMask
                    backing:NSBackingStoreBuffered
                      defer:NO]);
  }
llvm-svn: 195301 
							
						 
						
							2013-11-21 01:46:33 +00:00  
						
					 
				
					
						
							
							
								 
								Alexander Kornienko
							
						 
						
							 
							
							
							
							
								
							
							
								3cfa973978 
								
							 
						 
						
							
							
								
								Added an option to allow short function bodies be placed on a single line.  
							
							 
							
							... 
							
							
							
							Summary:
The AllowShortFunctionsOnASingleLine option now controls short function
body placement on a single line independent of the BreakBeforeBraces option.
Updated tests using BreakBeforeBraces other than BS_Attach.
Addresses http://llvm.org/PR17888 
Reviewers: klimek, djasper
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2230 
llvm-svn: 195256 
							
						 
						
							2013-11-20 16:33:05 +00:00  
						
					 
				
					
						
							
							
								 
								Alexander Kornienko
							
						 
						
							 
							
							
							
							
								
							
							
								7c9c050769 
								
							 
						 
						
							
							
								
								Support for JavaScript === and !== operators.  
							
							 
							
							... 
							
							
							
							Reviewers: klimek, djasper
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2231 
llvm-svn: 195251 
							
						 
						
							2013-11-20 14:30:26 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								4478e5245e 
								
							 
						 
						
							
							
								
								clang-format: Improve linebreaking and indentation for ObjC calls.  
							
							 
							
							... 
							
							
							
							Before:
  popup_wdow_.reset([[RenderWidgetPopupWindow alloc]
      iniithContentRect:
          NSMakRet(origin_global.x, origin_global.y, pos.width(), pos.height())
                syeMask:NSBorderlessWindowMask
                  bking:NSBackingStoreBuffered
                    der:NO]);
  [self param:function( //
      parameter)]
After:
  popup_wdow_.reset([[RenderWidgetPopupWindow alloc]
      iniithContentRect:NSMakRet(origin_global.x, origin_global.y, pos.width(),
                                 pos.height())
                syeMask:NSBorderlessWindowMask
                  bking:NSBackingStoreBuffered
                    der:NO]);
  [self param:function( //
                  parameter)]
llvm-svn: 194267 
							
						 
						
							2013-11-08 17:33:24 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								165b29e2d2 
								
							 
						 
						
							
							
								
								clang-format: Make breaking before ternary operators configurable.  
							
							 
							
							... 
							
							
							
							llvm-svn: 194229 
							
						 
						
							2013-11-08 00:57:11 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a98da3d236 
								
							 
						 
						
							
							
								
								clang-format: Improve binary operator detection in macros.  
							
							 
							
							... 
							
							
							
							Before:
  #define M(NAME) assert(!Context.Verifying &&#NAME);
After:
  #define M(NAME) assert(!Context.Verifying && #NAME);
This fixes llvm.org/PR16156.
llvm-svn: 194216 
							
						 
						
							2013-11-07 19:56:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f48b5abc49 
								
							 
						 
						
							
							
								
								clang-format: Improve ObjC variadic and binary expression parameters.  
							
							 
							
							... 
							
							
							
							Before:
  [self aaaaaaaaaaaaaaa:aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa |
                           aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa |
                           aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa];
  [self aaaaaaaaaaaaaaa:aaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa];
After:
  [self aaaaaaaaaaaaaaa:aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa |
                        aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa |
                        aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa];
  [self aaaaaaaaaaaaaaa:aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa,
                        aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa,
                        aaaaaaaaaaaaaaa, aaaaaaaaaaaaaaa];
This addresses llvm.org/PR15349 and llvm.org/PR16185.
llvm-svn: 194214 
							
						 
						
							2013-11-07 19:23:49 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								4fcc8b91eb 
								
							 
						 
						
							
							
								
								clang-format: Improve formatting of constructor initializers.  
							
							 
							
							... 
							
							
							
							Before:
  Constructor()
      : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaa(aaaa,
                                                                      aaaa)) {}
After:
  Constructor()
      : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
            aaaaaaaaaaaaaaaaaaaaaaaaa(aaaa, aaaa)) {}
llvm-svn: 194210 
							
						 
						
							2013-11-07 17:52:51 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								bc5cb4e369 
								
							 
						 
						
							
							
								
								clang-format: Remove old hack that mainly made incorrect tests pass.  
							
							 
							
							... 
							
							
							
							As a side-effect, constructors definitions will correctly be recognized
and formatted as function declarations. Tests will be added in a
follow-up patch actually using the correct recognition.
llvm-svn: 194209 
							
						 
						
							2013-11-07 17:43:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								bbf5c1c965 
								
							 
						 
						
							
							
								
								clang-format: Allow line merging and partial formatting of nested blocks  
							
							 
							
							... 
							
							
							
							Before, clang-format would always format entire nested blocks, which
can be unwanted e.g. for long DEBUG({...}) statements. Also
clang-format would not allow to merge lines in nested blocks (e.g. to
put "if (a) return;" on one line in Google style).
This is the first step of several refactorings mostly focussing on the
additional functionality (by reusing the "format many lines" code to
format the children of a nested block). The next steps are:
* Pull out the line merging into its own class.
* Seperate the formatting of many lines from the formatting of a single
  line (and the analysis of the solution space).
llvm-svn: 194090 
							
						 
						
							2013-11-05 19:10:03 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								9885784d67 
								
							 
						 
						
							
							
								
								clang-format: Fix whitespaces in include directives.  
							
							 
							
							... 
							
							
							
							Before (clang-format wouldn't change):
  #include  "a.h"
  #include<a>
After:
  #include "a.h"
  #include <a>
This fixes llvm.org/PR16151.
llvm-svn: 193683 
							
						 
						
							2013-10-30 13:54:53 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								dd978ae0e1 
								
							 
						 
						
							
							
								
								clang-format: Option to control spacing in template argument lists.  
							
							 
							
							... 
							
							
							
							Same as SpacesInParentheses, this option allows adding a space inside
the '<' and '>' of a template parameter list.
Patch by Christopher Olsen.
This fixes llvm.org/PR17301.
llvm-svn: 193614 
							
						 
						
							2013-10-29 14:52:02 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								edc5f09175 
								
							 
						 
						
							
							
								
								clang-format: Fix overloaded operator for global-scoped conversions.  
							
							 
							
							... 
							
							
							
							Before:
  operator::A();
After:
  operator ::A();
llvm-svn: 193605 
							
						 
						
							2013-10-29 12:24:23 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								a1ea4cbb80 
								
							 
						 
						
							
							
								
								clang-format: Fix ObjC method exprs with variadic parameters.  
							
							 
							
							... 
							
							
							
							Before:
  _versionLabel.text = [
    NSString stringWithFormat:NSLocalizedString(@"version: %@", @"Label"),
    [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]
  ];
After:
  _versionLabel.text =
      [NSString stringWithFormat:NSLocalizedString(@"version: %@", @"Label"),
          [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"]];
This fixed llvm.org/PR17695.
llvm-svn: 193475 
							
						 
						
							2013-10-26 17:00:22 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								33b909c5f3 
								
							 
						 
						
							
							
								
								clang-format: Adapt line break penalties for LLVM style.  
							
							 
							
							... 
							
							
							
							Specifically make clang-format less eager to break after the opening
parenthesis of a function call.
Before:
  aaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
  aaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +
                        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
Apparently that is preferable. This penalties are adapted
conservatively, we might have to increase them a little bit further.
llvm-svn: 193410 
							
						 
						
							2013-10-25 14:29:37 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								b596fb2be2 
								
							 
						 
						
							
							
								
								clang-format: Cleanup array initializer and dict initializer formatting.  
							
							 
							
							... 
							
							
							
							Significant changes:
- Also recognize these literals with missing "@" for robustness.
- Reorganize tests.
llvm-svn: 193325 
							
						 
						
							2013-10-24 10:31:50 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								1db6c38687 
								
							 
						 
						
							
							
								
								clang-format: Improve formatting of ObjC array literals.  
							
							 
							
							... 
							
							
							
							Before:
  NSArray *arguments =
      @[ kind == kUserTicket ? @"--user-store" : @"--system-store",
         @"--print-tickets", @"--productid", @"com.google.Chrome" ];
After:
  NSArray *arguments = @[
      kind == kUserTicket ? @"--user-store" : @"--system-store",
      @"--print-tickets",
      @"--productid",
      @"com.google.Chrome"
  ];
This fixes llvm.org/PR15231.
llvm-svn: 193167 
							
						 
						
							2013-10-22 15:30:28 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								d46e07e26e 
								
							 
						 
						
							
							
								
								clang-format: Better understand Lambda poarameters.  
							
							 
							
							... 
							
							
							
							Before:
  auto PointerBinding = [](const char * S) {};
After:
  auto PointerBinding = [](const char *S) {};
This fixes llvm.org/PR17618.
llvm-svn: 193054 
							
						 
						
							2013-10-20 18:15:30 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								2d0cd49787 
								
							 
						 
						
							
							
								
								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;
  }
llvm-svn: 193050 
							
						 
						
							2013-10-20 16:56:16 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								d8c36d09b1 
								
							 
						 
						
							
							
								
								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;
llvm-svn: 192983 
							
						 
						
							2013-10-18 16:34:40 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								fba84ff00d 
								
							 
						 
						
							
							
								
								clang-format: No space in "<::" in C++11 mode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 192524 
							
						 
						
							2013-10-12 05:16:06 +00:00  
						
					 
				
					
						
							
							
								 
								Alexander Kornienko
							
						 
						
							 
							
							
							
							
								
							
							
								384b40b90d 
								
							 
						 
						
							
							
								
								Don't break string literals inside preprocessor directives.  
							
							 
							
							... 
							
							
							
							Summary:
This way we avoid breaking code which uses unknown preprocessor
directives with long string literals. The specific use case in
http://llvm.org/PR17035  isn't very common, but it seems to be a good idea to
avoid this kind of problem anyway.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1813 
llvm-svn: 192507 
							
						 
						
							2013-10-11 21:43:05 +00:00  
						
					 
				
					
						
							
							
								 
								Manuel Klimek
							
						 
						
							 
							
							
							
							
								
							
							
								71814b4465 
								
							 
						 
						
							
							
								
								Support formatting of preprocessor branches.  
							
							 
							
							... 
							
							
							
							We now correctly format:
  void SomeFunction(int param1,
  #ifdef X
                    NoTemplate param2,
  #else
                    template <
  #ifdef A
                        MyType<Some> >
  #else
                        Type1, Type2>
  #endif
                    param2,
  #endif
                    param3) {
    f();
  }
llvm-svn: 192503 
							
						 
						
							2013-10-11 21:25:45 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								877615ccfd 
								
							 
						 
						
							
							
								
								clang-format: Don't remove 'unknown' tokens.  
							
							 
							
							... 
							
							
							
							In certain macros or incorrect string literals, the token stream can
contain 'unknown' tokens, e.g. a single backslash or a set of empty
ticks. clang-format simply treated them as whitespace and removed them
prior to this patch.
This fixes llvm.org/PR17215
llvm-svn: 192490 
							
						 
						
							2013-10-11 19:45:02 +00:00  
						
					 
				
					
						
							
							
								 
								Alexander Kornienko
							
						 
						
							 
							
							
							
							
								
							
							
								60d1b046dd 
								
							 
						 
						
							
							
								
								Correctly detect colon in bit fields. Fixes PR17333.  
							
							 
							
							... 
							
							
							
							Summary: Colon was incorrectly detected as a start of inheritance list. Fixed.
Reviewers: djasper
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1884 
llvm-svn: 192349 
							
						 
						
							2013-10-10 13:36:20 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f9a5e4043c 
								
							 
						 
						
							
							
								
								clang-format: Improve indentation when deriving from templated classes.  
							
							 
							
							... 
							
							
							
							Before:
  struct aaaaaaaaaaaaa : public aaaaaaaaaaaaaaaaaaa< //
      aaaaaaaaaaaaaaaa> {};
  struct aaaaaaaaaaaaaaaaaaaa : public aaaaaaaaaaaaaaaaaaa<
      aaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaa> {};
After:
  struct aaaaaaaaaaaaa : public aaaaaaaaaaaaaaaaaaa< //
                             aaaaaaaaaaaaaaaa> {};
  struct aaaaaaaaaaaaaaaaaaaa
      : public aaaaaaaaaaaaaaaaaaa<aaaaaaaaaaaaaaaaaaaaa,
                                   aaaaaaaaaaaaaaaaaaaaaa> {};
llvm-svn: 192187 
							
						 
						
							2013-10-08 16:24:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								ec01cd6e7f 
								
							 
						 
						
							
							
								
								clang-format: Improve constructor initializer linewrapping.  
							
							 
							
							... 
							
							
							
							Specifically make ConstructorInitializerAllOnOneLineOrOnePerLine work
nicely with BreakConstructorInitializersBeforeComma.
This fixes llvm.org/PR17395.
llvm-svn: 192168 
							
						 
						
							2013-10-08 05:11:18 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								eabede6d1b 
								
							 
						 
						
							
							
								
								clang-format: Improve alignment after 'return'.  
							
							 
							
							... 
							
							
							
							Previously, comments, could totally confuse it.
Before:
  return
             // true if code is one of a or b.
             code == a ||
         code == b;
After:
  return
      // true if code is one of a or b.
      code == a || code == b;
llvm-svn: 191654 
							
						 
						
							2013-09-30 08:29:03 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								0b1f76b658 
								
							 
						 
						
							
							
								
								clang-format: Fix assertion on incomplete string literals.  
							
							 
							
							... 
							
							
							
							Before, this could would lead to an assert:
  llvm::errs() << "
               << a;
llvm-svn: 191639 
							
						 
						
							2013-09-29 12:02:57 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								f3167903b8 
								
							 
						 
						
							
							
								
								clang-format: Improve formatting of functions with multiple trailing tokens.  
							
							 
							
							... 
							
							
							
							Before:
  void SomeFunction(aaaaaaaaaaaaaaaaaaaaaaaaaa,
                    aaaaaaaaaaaaaaaaaaaaaaaaaa) override
  final;
After:
  void SomeFunction(aaaaaaaaaaaaaaaaaaaaaaaaaa,
                    aaaaaaaaaaaaaaaaaaaaaaaaaa) override final;
llvm-svn: 191494 
							
						 
						
							2013-09-27 08:29:16 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								d94bff3721 
								
							 
						 
						
							
							
								
								clang-format: Option to removing the space before assignment operators.  
							
							 
							
							... 
							
							
							
							Patch contributed by Aaron Wishnick. Thank you!
llvm-svn: 191375 
							
						 
						
							2013-09-25 15:15:02 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								df620b2457 
								
							 
						 
						
							
							
								
								clang-format: Improve address-of-operator detection  
							
							 
							
							... 
							
							
							
							Before:
  size = sizeof * a;
After:
  size = sizeof *a;
llvm-svn: 191139 
							
						 
						
							2013-09-21 17:31:51 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Jasper
							
						 
						
							 
							
							
							
							
								
							
							
								fb81b09d87 
								
							 
						 
						
							
							
								
								clang-format: Don't accidentally move tokens into preprocessor directive.  
							
							 
							
							... 
							
							
							
							This fixes llvm.org/PR17265.
Before:
  Foo::Foo()
  #ifdef BAR
      : baz(0)
  #endif {
  }
After:
  Foo::Foo()
  #ifdef BAR
      : baz(0)
  #endif
  {
  }
llvm-svn: 190861 
							
						 
						
							2013-09-17 09:52:48 +00:00