aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-07-18 19:16:31 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-07-18 19:16:31 -0400
commit35d17c1d94820ecd169be6ef9b16027d587b4d7a (patch)
tree4f3bcdd2775a2d76ae921d25115a10fb188dd265
parent06aa52de3cf82005be7339f00befa978f9990e22 (diff)
downloadgcc-35d17c1d94820ecd169be6ef9b16027d587b4d7a.zip
gcc-35d17c1d94820ecd169be6ef9b16027d587b4d7a.tar.gz
gcc-35d17c1d94820ecd169be6ef9b16027d587b4d7a.tar.bz2
(va_arg): Add support for 128 bit long double type.
From-SVN: r10147
-rw-r--r--gcc/ginclude/va-sparc.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ginclude/va-sparc.h b/gcc/ginclude/va-sparc.h
index 525420a..9433992 100644
--- a/gcc/ginclude/va-sparc.h
+++ b/gcc/ginclude/va-sparc.h
@@ -184,7 +184,9 @@ __extension__ \
The casts to char * avoid warnings about invalid pointer arithmetic. */
#define va_arg(pvar,TYPE) \
__extension__ \
-(*({((__builtin_classify_type (*(TYPE*) 0) >= __record_type_class) \
+(*({((__builtin_classify_type (*(TYPE*) 0) >= __record_type_class \
+ || (__builtin_classify_type (*(TYPE*) 0) == __real_type_class \
+ && sizeof (TYPE) == 16)) \
? ((pvar) = (char *)(pvar) + __va_rounded_size (TYPE *), \
*(TYPE **) (void *) ((char *)(pvar) - __va_rounded_size (TYPE *))) \
: __va_rounded_size (TYPE) == 8 \