about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--conform/conformtest.pl7
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8b89cd9a29..72a5f274a2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/conformtest.pl: If macro or constant types start
+	"promoted:", expect the symbol to be of the following type
+	promoted by the integer promotions.
+
 	* conform/conformtest.pl: Parse all "constant" and "macro" lines
 	in one place.  Also handle "macro-constant".
 
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index f5860ac139..2d8cfd703c 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -437,7 +437,12 @@ while ($#headers >= 0) {
 	open (TESTFILE, ">$fnamebase.c");
 	print TESTFILE "$prepend";
 	print TESTFILE "#include <$h>\n";
-	print TESTFILE "__typeof__ (($type) 0) a;\n";
+	if ($type =~ /^promoted:/) {
+	  $type =~ s/^promoted://;
+	  print TESTFILE "__typeof__ (($type) 0 + ($type) 0) a;\n";
+	} else {
+	  print TESTFILE "__typeof__ (($type) 0) a;\n";
+	}
 	print TESTFILE "extern __typeof__ ($symbol) a;\n";
 	close (TESTFILE);