#   Copyright (C) 2001, 2007-2012 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Written by Michael Snyder, Red Hat, Inc., 9/20/2001

# This file is part of the gdb testsuite
# Tests for type expressions using const and volatile keywords.

#
# test running programs
#

set testfile "cvexpr"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
     untested cvexpr.exp
     return -1
}

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}

gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set print address off"
gdb_test_no_output "set width 0"

set ws  "\[ \t\]*"

#
# Test casting a scalar to const
#

gdb_test "whatis (const char) v_char" \
	"type = const char" \
	"(const char)"
gdb_test "whatis (const signed char) v_signed_char" \
	"type = const signed char" \
	"(const signed char)"
gdb_test "whatis (const unsigned char) v_unsigned_char" \
	"type = const (unsigned char|char)" \
	"(const unsigned char)"
gdb_test "whatis (const short) v_short" \
	"type = const (short|short int)" \
	"(const short)"
gdb_test "whatis (const signed short) v_signed_short" \
	"type = const (short|short int|signed short|signed short int)" \
	"(const signed short)"
gdb_test "whatis (const unsigned short) v_unsigned_short" \
	"type = const (unsigned short|short unsigned int)" \
	"(const unsigned short)"
gdb_test "whatis (const int) v_int" \
	"type = const int" \
	"(const int)"
gdb_test "whatis (const signed int) v_signed_int" \
	"type = const (signed int|int)" \
	"(const signed int)"
gdb_test "whatis (const unsigned int) v_unsigned_int" \
	"type = const unsigned int" \
	"(const unsigned int)"
gdb_test "whatis (const long) v_long" \
	"type = const (long|long int)" \
	"(const long)"
gdb_test "whatis (const signed long) v_signed_long" \
	"type = const (signed |)long( int|)" \
	"(const signed long)"
gdb_test "whatis (const unsigned long) v_unsigned_long" \
	"type = const (unsigned long|long unsigned int)" \
	"(const unsigned long)"
gdb_test "whatis (const long long) v_long_long" \
	"type = const long long( int|)" \
	"(const long long)"
gdb_test "whatis (const signed long long) v_signed_long_long" \
	"type = const (signed |)long long( int|)" \
	"(const signed long long)"
gdb_test "whatis (const unsigned long long) v_unsigned_long_long" \
	"type = const (unsigned long long|long long unsigned int)" \
	"(const unsigned long long)"
gdb_test "whatis (const float) v_float" \
	"type = const float" \
	"(const float)"
gdb_test "whatis (const double) v_double" \
	"type = const double" \
	"(const double)"

#
# Test casting a scalar to volatile
#

gdb_test "whatis (volatile char) v_char" \
	"type = volatile char" \
	"(volatile char)"
gdb_test "whatis (volatile signed char) v_signed_char" \
	"type = volatile signed char" \
	"(volatile signed char)"
gdb_test "whatis (volatile unsigned char) v_unsigned_char" \
	"type = volatile (unsigned char|char)" \
	"(volatile unsigned char)"
gdb_test "whatis (volatile short) v_short" \
	"type = volatile (short|short int)" \
	"(volatile short)"
gdb_test "whatis (volatile signed short) v_signed_short" \
	"type = volatile (short|short int|signed short|signed short int)" \
	"(volatile signed short)"
gdb_test "whatis (volatile unsigned short) v_unsigned_short" \
	"type = volatile (unsigned short|short unsigned int)" \
	"(volatile unsigned short)"
gdb_test "whatis (volatile int) v_int" \
	"type = volatile int" \
	"(volatile int)"
gdb_test "whatis (volatile signed int) v_signed_int" \
	"type = volatile (signed int|int)" \
	"(volatile signed int)"
gdb_test "whatis (volatile unsigned int) v_unsigned_int" \
	"type = volatile unsigned int" \
	"(volatile unsigned int)"
gdb_test "whatis (volatile long) v_long" \
	"type = volatile (long|long int)" \
	"(volatile long)"
gdb_test "whatis (volatile signed long) v_signed_long" \
	"type = volatile (signed |)long( int|)" \
	"(volatile signed long)"
gdb_test "whatis (volatile unsigned long) v_unsigned_long" \
	"type = volatile (unsigned long|long unsigned int)" \
	"(volatile unsigned long)"
gdb_test "whatis (volatile long long) v_long_long" \
	"type = volatile long long( int|)" \
	"(volatile long long)"
gdb_test "whatis (volatile signed long long) v_signed_long_long" \
	"type = volatile (signed |)long long( int|)" \
	"(volatile signed long long)"
gdb_test "whatis (volatile unsigned long long) v_unsigned_long_long" \
	"type = volatile (unsigned long long|long long unsigned int)" \
	"(volatile unsigned long long)"
gdb_test "whatis (volatile float) v_float" \
	"type = volatile float" \
	"(volatile float)"
gdb_test "whatis (volatile double) v_double" \
	"type = volatile double" \
	"(volatile double)"

#
# Combine const and volatile
#

gdb_test "whatis (const volatile int) v_int" \
	"type = const volatile int" \
	"(const volatile int)"
gdb_test "whatis (volatile const int) v_int" \
	"type = const volatile int" \
	"(volatile const int)"
gdb_test "whatis (const int volatile) v_int" \
	"type = const volatile int" \
	"(const int volatile)"
gdb_test "whatis (volatile int const) v_int" \
	"type = const volatile int" \
	"(volatile int const)"
gdb_test "whatis (int const volatile) v_int" \
	"type = const volatile int" \
	"(int const volatile)"
gdb_test "whatis (int volatile const) v_int" \
	"type = const volatile int" \
	"(int volatile const)"

gdb_test "whatis (const volatile int *) v_int_pointer" \
	"type = const volatile int${ws}\\*" \
	"(const volatile int *)"
gdb_test "whatis (volatile const int *) v_int_pointer" \
	"type = const volatile int${ws}\\*" \
	"(volatile const int *)"
gdb_test "whatis (const int volatile *) v_int_pointer" \
	"type = const volatile int${ws}\\*" \
	"(const int volatile)"
gdb_test "whatis (volatile int const *) v_int_pointer" \
	"type = const volatile int${ws}\\*" \
	"(volatile int const *)"
gdb_test "whatis (int const volatile *) v_int_pointer" \
	"type = const volatile int${ws}\\*" \
	"(int const volatile *)"
gdb_test "whatis (int volatile const *) v_int_pointer" \
	"type = const volatile int${ws}\\*" \
	"(int volatile const *)"
gdb_test "whatis (int * const volatile) v_int_pointer" \
	"type = int${ws}\\*${ws}const volatile" \
	"(int * const volatile)"
gdb_test "whatis (int * volatile const) v_int_pointer" \
	"type = int${ws}\\*${ws}const volatile" \
	"(int * volatile const)"


#
# Put 'signed' and 'unsigned' before const/volatile (FIXME)
#

#gdb_test "whatis (signed const char) v_signed_char" \
#	"type = const char" \
#	"(signed const char)"
#gdb_test "whatis (unsigned const char) v_unsigned_char" \
#	"type = const (unsigned char|char)" \
#	"(unsigned const char)"
#gdb_test "whatis (signed const short) v_signed_short" \
#	"type = const (short|short int|signed short|signed short int)" \
#	"(signed const short)"
#gdb_test "whatis (unsigned const short) v_unsigned_short" \
#	"type = const (unsigned short|short unsigned int)" \
#	"(unsigned const short)"
#gdb_test "whatis (signed const int) v_signed_int" \
#	"type = const (signed int|int)" \
#	"(signed const int)"
#gdb_test "whatis (unsigned const int) v_unsigned_int" \
#	"type = const unsigned int" \
#	"(unsigned const int)"
#gdb_test "whatis (signed const long) v_signed_long" \
#	"type = const (signed |)long( int|)" \
#	"(signed const long)"
#gdb_test "whatis (unsigned const long) v_unsigned_long" \
#	"type = const (unsigned long|long unsigned int)" \
#	"(unsigned const long)"
#gdb_test "whatis (signed const long long) v_signed_long_long" \
#	"type = const (signed |)long long( int|)" \
#	"(signed const long long)"
#gdb_test "whatis (unsigned const long long) v_unsigned_long_long" \
#	"type = const (unsigned long long|long long unsigned int)" \
#	"(const unsigned long long)"

#gdb_test "whatis (signed volatile char) v_signed_char" \
#	"type = volatile char" \
#	"(signed volatile char)"
#gdb_test "whatis (unsigned volatile char) v_unsigned_char" \
#	"type = volatile (unsigned char|char)" \
#	"(unsigned volatile char)"
#gdb_test "whatis (signed volatile short) v_signed_short" \
#	"type = volatile (short|short int|signed short|signed short int)" \
#	"(signed volatile short)"
#gdb_test "whatis (unsigned volatile short) v_unsigned_short" \
#	"type = volatile (unsigned short|short unsigned int)" \
#	"(unsigned volatile short)"
#gdb_test "whatis (signed volatile int) v_signed_int" \
#	"type = volatile (signed int|int)" \
#	"(signed volatile int)"
#gdb_test "whatis (unsigned volatile int) v_unsigned_int" \
#	"type = volatile unsigned int" \
#	"(unsigned volatile int)"
#gdb_test "whatis (signed volatile long) v_signed_long" \
#	"type = volatile (signed |)long( int|)" \
#	"(signed volatile long)"
#gdb_test "whatis (unsigned volatile long) v_unsigned_long" \
#	"type = volatile (unsigned long|long unsigned int)" \
#	"(unsigned volatile long)"
#gdb_test "whatis (signed volatile long long) v_signed_long_long" \
#	"type = volatile (signed |)long long( int|)" \
#	"(signed volatile long long)"
#gdb_test "whatis (unsigned volatile long long) v_unsigned_long_long" \
#	"type = volatile (unsigned long long|long long unsigned int)" \
#	"(unsigned volatile long long)"

#
# Now put the 'const' and 'volatile' keywords after the base type.
#

gdb_test "whatis (char const) v_char" \
	"type = const char" \
	"(char const)"
gdb_test "whatis (signed char const) v_signed_char" \
	"type = const signed char" \
	"(signed char const)"
gdb_test "whatis (unsigned char const) v_unsigned_char" \
	"type = const (unsigned char|char)" \
	"(unsigned char const)"
gdb_test "whatis (short const) v_short" \
	"type = const (short|short int)" \
	"(short const)"
gdb_test "whatis (signed short const) v_signed_short" \
	"type = const (short|short int|signed short|signed short int)" \
	"(signed short const)"
gdb_test "whatis (unsigned short const) v_unsigned_short" \
	"type = const (unsigned short|short unsigned int)" \
	"(unsigned short const)"
gdb_test "whatis (int const) v_int" \
	"type = const int" \
	"(int const)"
gdb_test "whatis (signed int const) v_signed_int" \
	"type = const (signed int|int)" \
	"(signed int const)"
gdb_test "whatis (unsigned int const) v_unsigned_int" \
	"type = const unsigned int" \
	"(unsigned int const)"
gdb_test "whatis (long const) v_long" \
	"type = const (long|long int)" \
	"(long const)"
gdb_test "whatis (signed long const) v_signed_long" \
	"type = const (signed |)long( int|)" \
	"(signed long const)"
gdb_test "whatis (unsigned long const) v_unsigned_long" \
	"type = const (unsigned long|long unsigned int)" \
	"(unsigned long const)"
gdb_test "whatis (long long const) v_long_long" \
	"type = const long long( int|)" \
	"(long long const)"
gdb_test "whatis (signed long long const) v_signed_long_long" \
	"type = const (signed |)long long( int|)" \
	"(signed long long const)"
gdb_test "whatis (unsigned long long const) v_unsigned_long_long" \
	"type = const (unsigned long long|long long unsigned int)" \
	"(unsigned long long const)"
gdb_test "whatis (float const) v_float" \
	"type = const float" \
	"(float const)"
gdb_test "whatis (double const) v_double" \
	"type = const double" \
	"(double const)"

gdb_test "whatis (char volatile) v_char" \
	"type = volatile char" \
	"(char volatile)"
gdb_test "whatis (signed char volatile) v_signed_char" \
	"type = volatile signed char" \
	"(signed char volatile)"
gdb_test "whatis (unsigned char volatile) v_unsigned_char" \
	"type = volatile (unsigned char|char)" \
	"(unsigned char volatile)"
gdb_test "whatis (short volatile) v_short" \
	"type = volatile (short|short int)" \
	"(short volatile)"
gdb_test "whatis (signed short volatile) v_signed_short" \
	"type = volatile (short|short int|signed short|signed short int)" \
	"(signed short volatile)"
gdb_test "whatis (unsigned short volatile) v_unsigned_short" \
	"type = volatile (unsigned short|short unsigned int)" \
	"(unsigned short volatile)"
gdb_test "whatis (int volatile) v_int" \
	"type = volatile int" \
	"(int volatile)"
gdb_test "whatis (signed int volatile) v_signed_int" \
	"type = volatile (signed int|int)" \
	"(signed int volatile)"
gdb_test "whatis (unsigned int volatile) v_unsigned_int" \
	"type = volatile unsigned int" \
	"(unsigned int volatile)"
gdb_test "whatis (long volatile) v_long" \
	"type = volatile (long|long int)" \
	"(long volatile)"
gdb_test "whatis (signed long volatile) v_signed_long" \
	"type = volatile (signed |)long( int|)" \
	"(signed long volatile)"
gdb_test "whatis (unsigned long volatile) v_unsigned_long" \
	"type = volatile (unsigned long|long unsigned int)" \
	"(unsigned long volatile)"
gdb_test "whatis (long long volatile) v_long_long" \
	"type = volatile long long( int|)" \
	"(long long volatile)"
gdb_test "whatis (signed long long volatile) v_signed_long_long" \
	"type = volatile (signed |)long long( int|)" \
	"(signed long long volatile)"
gdb_test "whatis (unsigned long long volatile) v_unsigned_long_long" \
	"type = volatile (unsigned long long|long long unsigned int)" \
	"(unsigned long long volatile)"
gdb_test "whatis (float volatile) v_float" \
	"type = volatile float" \
	"(float volatile)"
gdb_test "whatis (double volatile) v_double" \
	"type = volatile double" \
	"(double volatile)"

#
# enums
#

gdb_test "whatis (const enum misordered) v_misordered" \
	"type = const enum misordered" \
	"(const enum misordered)"
gdb_test "whatis (enum misordered const) v_misordered" \
	"type = const enum misordered" \
	"(enum misordered const)"
gdb_test "whatis (volatile enum misordered) v_misordered" \
	"type = volatile enum misordered" \
	"(volatile enum misordered)"
gdb_test "whatis (enum misordered volatile) v_misordered" \
	"type = volatile enum misordered" \
	"(enum misordered volatile)"

# 
# Pointers
#

gdb_test "whatis (const int *) v_int_pointer" \
	"type = const int${ws}\\*" \
	"(const int *)"
gdb_test "whatis (int const *) v_int_pointer" \
	"type = const int${ws}\\*" \
	"(int const *)"
gdb_test "whatis (int * const) v_int_pointer" \
	"type = int \\*${ws}const" \
	"(int * const)"
gdb_test "whatis (const int * const) v_int_pointer" \
	"type = const int${ws}\\*${ws}const" \
	"(const int * const)"
gdb_test "whatis (int const * const) v_int_pointer" \
	"type = const int${ws}\\*${ws}const" \
	"(int const * const)"

gdb_test "whatis (const int **) v_int_pointer_pointer" \
	"type = const int${ws}\\*${ws}\\*" \
	"(const int **)"
gdb_test "whatis (int const **) v_int_pointer_pointer" \
	"type = const int${ws}\\*${ws}\\*" \
	"(int const **)"
gdb_test "whatis (int ** const) v_int_pointer_pointer" \
	"type = int \\*${ws}\\*${ws}const" \
	"(int ** const)"
gdb_test "whatis (const int * const *) v_int_pointer_pointer" \
	"type = const int${ws}\\*${ws}const${ws}\\*" \
	"(const int * const *)"
gdb_test "whatis (int const * const *) v_int_pointer_pointer" \
	"type = const int${ws}\\*${ws}const${ws}\\*" \
	"(int const * const *)"
gdb_test "whatis (const int * const * const) v_int_pointer_pointer" \
	"type = const int${ws}\\*${ws}const${ws}\\*${ws}const" \
	"(const int * const * const)"
gdb_test "whatis (int const * const * const) v_int_pointer_pointer" \
	"type = const int${ws}\\*${ws}const${ws}\\*${ws}const" \
	"(int const * const * const)"

#
# Arrays TODO
#

#
# Pointers to arrays, arrays of pointers TODO
#

#
# Structs and Unions
#

gdb_test "whatis (const struct t_struct) v_struct1" \
	"type = const struct t_struct" \
	"(const struct t_struct)"
gdb_test "whatis (const union t_union) v_union" \
	"type = const union t_union" \
	"(const union t_union)"
gdb_test "whatis (struct t_struct const) v_struct1" \
	"type = const struct t_struct" \
	"(struct t_struct const)"
gdb_test "whatis (union t_union const) v_union" \
	"type = const union t_union" \
	"(union t_union const)"
gdb_test "whatis (const struct t_struct *) &v_struct1" \
	"type = const struct t_struct${ws}\\*" \
	"(const struct t_struct *)"
gdb_test "whatis (const union t_union *) &v_union" \
	"type = const union t_union${ws}\\*" \
	"(const union t_union *)"
gdb_test "whatis (struct t_struct const *) &v_struct1" \
	"type = const struct t_struct${ws}\\*" \
	"(struct t_struct const *)"
gdb_test "whatis (union t_union const *) &v_union" \
	"type = const union t_union${ws}\\*" \
	"(union t_union const *)"
gdb_test "whatis (struct t_struct * const) &v_struct1" \
	"type = struct t_struct${ws}\\*${ws}const" \
	"(struct t_struct * const)"
gdb_test "whatis (union t_union * const) &v_union" \
	"type = union t_union${ws}\\*${ws}const" \
	"(union t_union * const)"
gdb_test "whatis (const struct t_struct * const) &v_struct1" \
	"type = const struct t_struct${ws}\\*${ws}const" \
	"(const struct t_struct * const)"
gdb_test "whatis (const union t_union * const) &v_union" \
	"type = const union t_union${ws}\\*${ws}const" \
	"(const union t_union * const)"
gdb_test "whatis (struct t_struct const * const) &v_struct1" \
	"type = const struct t_struct${ws}\\*${ws}const" \
	"(struct t_struct const * const)"
gdb_test "whatis (union t_union const * const) &v_union" \
	"type = const union t_union${ws}\\*${ws}const" \
	"(union t_union const * const)"

#
# Function pointers TODO
#

