// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This is a package for testing comment placement by go/printer.
//
package main

// Test cases for idempotent comment formatting (was issue 1835).
/*
c1a
*/
/*
   c1b
*/
/* foo
c1c
*/
/* foo
   c1d
*/
/*
c1e
foo */
/*
   c1f
   foo */

func f() {
	/*
	   c2a
	*/
	/*
	   c2b
	*/
	/* foo
	   c2c
	*/
	/* foo
	   c2d
	*/
	/*
	   c2e
	   foo */
	/*
	   c2f
	   foo */
}

func g() {
	/*
	   c3a
	*/
	/*
	   c3b
	*/
	/* foo
	   c3c
	*/
	/* foo
	   c3d
	*/
	/*
	   c3e
	   foo */
	/*
	   c3f
	   foo */
}

// Test case taken literally from issue 1835.
func main() {
	/*
	   prints test 5 times
	*/
	for i := 0; i < 5; i++ {
		println("test")
	}
}

func issue5623() {
L:
	_ = yyyyyyyyyyyyyyyy			// comment - should be aligned
	_ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx	/* comment */

	_ = yyyyyyyyyyyyyyyy			/* comment - should be aligned */
	_ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx	// comment

LLLLLLL:
	_ = yyyyyyyyyyyyyyyy			// comment - should be aligned
	_ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx	// comment

LL:
LLLLL:
	_ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx	/* comment */
	_ = yyyyyyyyyyyyyyyy			/* comment - should be aligned */

	_ = xxxxxxxxxxxxxxxxxxxxxxxxxxxx	// comment
	_ = yyyyyyyyyyyyyyyy			// comment - should be aligned

	// test case from issue
label:
	mask := uint64(1)<<c - 1		// Allocation mask
	used := atomic.LoadUint64(&h.used)	// Current allocations
}
